2

从未在 bash 上编码,但需要一些紧急的东西。对不起,如果这不是常态,但真的很想得到一些帮助。

我有一些被抛出到标准输出的消息,根据消息类型(消息是带有单词“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

我不确定在哪里/如何添加grepawk命令来检查具有单词“found”的字符串,并且只返回“found”,以便在if条件下它可以检查该单词。

谢谢!

4

1 回答 1

11

你可以做一些简单的事情:

command | grep -q 'found' && echo -e '\a'

如果 的输出command包含文本“found”,grep则将返回零退出状态,因此echo将执行命令,并发出哔声。

如果输出不包含“found”,grep将以状态 1 退出,并且不会导致echo.

根据您需要使蜂鸣声工作,只需更换&&. 一般语法类似于:

command | grep -q "$SEARCH" && command_if_found || command_if_not_found
于 2013-10-31T18:47:03.617 回答