我不是要阅读STDIN,而是要问为什么将数据传递给STDIN会影响脚本中执行的命令。在标记为重复项之前,请仔细阅读。
我有一个bash脚本,该脚本正在传递审核日志数据,并尝试根据传递的特定审核事件来运行ausearch。但是,脚本中的ausearch命令只有在我不通过stdin传递数据的情况下才能起作用。
作为一个例子,我有这个简化的脚本(au.sh)
#!/bin/bash
ausearch -i -a 1221217
如果我运行以下命令,它将输出预期的ausearch结果:
./au.sh
但是,如果我这样做:
echo "blah" | ./au.sh
然后输出:
<no matches>
实际上,“ blah”将是一个审核事件,脚本将从其中解析出事件ID,然后执行ausearch命令对其进行报告并记录结果。但是,通过stdin传递什么值到脚本都没有关系,如果什么都传递给脚本,那么该命令将错误地返回没有匹配项,并且我也不知道为什么。