基于grep结果的回声

tak*_*hin 7 scripting bash grep

无论 grep 是否找到任何结果,我都需要一个显示“是”或“否”的衬里。

我玩过grep -c,但没有成功。

Web*_*ide 11

怎么样:

uptime | grep user && echo 'yes' || echo 'no'
uptime | grep foo && echo 'yes' || echo 'no'
Run Code Online (Sandbox Code Playgroud)

然后你可以让它安静:

uptime | grep --quiet user && echo 'yes' || echo 'no'
uptime | grep --quiet foo && echo 'yes' || echo 'no'
Run Code Online (Sandbox Code Playgroud)

从 grep 手册页:

退出状态

通常,如果找到选定的行,退出状态为 0,否则为 1。但如果发生错误,退出状态为 2,除非使用 -q 或 --quiet 或 --silent 选项并找到选定的行。