如果有,怎么样?
解决方法 你可以使用awk:program | awk '/pattern/{exit}1'
如果您还想打印包含图案的线条,请说:
program | awk '/pattern/{print;exit}1'
例如:
$seq 200 | awk '/9/{print;exit}1'123456789
编辑:(参考您的评论,程序是否会停止.)以下是一个将在无限循环中执行的脚本:
n=1while : ; do echo $n n=$((n+1)) sleep 1done
这个脚本foo.sh执行时说:
$time bash foo.sh | awk '/9/{print;exit}1'123456789real 0m9.097suser 0m0.011ssys 0m0.011s
如您所见,在输出中检测到模式时脚本终止.
编辑:似乎您的程序缓冲输出.你可以使用stdbuf:
stdbuf -o0 yourprogram | awk '/pattern/{print;exit}1'
如果你正在使用mawk,那么说:
stdbuf -o0 yourprogram | mawk -W interactive '/pattern/{print;exit}1'总结
以上是内存溢出为你收集整理的linux – 检测到某些输出时自动取消二进制执行全部内容,希望文章能够帮你解决linux – 检测到某些输出时自动取消二进制执行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)