gpt4 book ai didi

linux - 调用 ausearch 的脚本在 stdin 上传输数据时表现不同

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:11 25 4
gpt4 key购买 nike

有人可以解释为什么通过 STDIN 传递 bash 脚本数据会导致脚本中的命令不起作用吗?

脚本:

#!/bin/bash
ausearch -i -a 1221217

如果我运行以下命令,它会按预期输出 ausearch 结果:

./au.sh

但是,如果我这样做:

echo "blah" | ./au.sh

然后输出:

<no matches>

两种执行方法应该返回相同的结果(因为 ausearch 是硬编码的)但是 stdin 似乎破坏了它。

不是询问如何在 bash 脚本中读取标准输入数据。

最佳答案

如果 stdin 是管道,

ausearch 会改变它的行为。如果是,它会搜索标准输入而不是审计守护程序日志。您可以使用 --input-logs 强制它从日志中读取。

echo "blah" | ausearch -i -a 1221217 --input-logs

重定向 stdin 会达到同样的目的。

#!/bin/bash
ausearch -i -a 1221217 < /dev/null

关于linux - 调用 ausearch 的脚本在 stdin 上传输数据时表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54426839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com