监视字符串的命令行

Gar*_*ake 4 bash shell command-line

(在bash中)是否可以观察命令行程序的输出并在特定字符串出现时标记?

基本上我的问题是我们有大型构建脚本,可以为控制台产生大量输出.我想看一下控制台说"错误"这个词,然后以某种方式提醒我.

然后我知道去观看剩下的过程/取消它.

lin*_*ski 5

从命令行尝试这样:

<YOUR_BUILD_CMD> | grep ERROR
Run Code Online (Sandbox Code Playgroud)

输出时只打印出ERROR <YOUR_BUILD_CMD>.该|管道运营商,这里是手册的grep命令.


sou*_*rge 5

你可以grep为字符串,但你需要存储make的原始输出,这可以使用tee.发生错误时使用mplayer播放声音文件的示例:

make 2>&1 | tee make.log | grep -lq ERROR && mplayer alert.wav
Run Code Online (Sandbox Code Playgroud)