从未在bash上编码,但需要紧急的事情。对不起,如果这不是常态,但我真的想得到一些帮助。
我有一些抛出到stdout的消息,具体取决于消息类型(消息是带有“found”字样的字符串)我需要bash脚本发出蜂鸣声。
到目前为止,我已经想出了这个。
output=$(command 1) # getting stdout stream?
while [ true ]; do
if [ "$output" = "found" ]; then # if the stdout has the word "found"
echo $(echo -e '\a') # this makes the beep sound
fi
done
我不确定在何处/如何添加grep
或awk
命令来检查具有单词“found”的字符串,并且只返回“found”以便在{{1它可以检查那个词。
谢谢!
答案 0 :(得分:11)
你可以做一些简单的事情:
command | grep -q 'found' && echo -e '\a'
如果command
的输出包含“找到”文本,则grep
将返回零退出状态,因此将执行echo
命令,从而发出蜂鸣声。 / p>
如果输出中未包含“已找到”,则grep
将退出状态1,并且不会生成echo
。
根据您需要发出的哔声,只需在&&
之后更换任何内容即可。一般语法如下:
command | grep -q "$SEARCH" && command_if_found || command_if_not_found