我正在做一些类似的事情
var=0 grep "foo" bar | while read line; do var=1 done
不幸的是,这不行,因为管道导致while在subshell中运行.有没有更好的方法来做到这一点?如果有另外一个解决方案,我不需要使用“read”
我看过Bash variable scope这是相似的,但我无法从中得到任何有用的东西.
如果你真的在做一些简单的事情,你甚至不需要读取循环.以下将工作:
VAR=0 grep "foo" bar && VAR=1 # ...
如果你真的需要循环,因为循环中发生了其他一些事情,你可以从<(命令)进程替换重定向:
VAR=0 while read line ; do VAR=1 # do other stuff done < <(grep "foo" bar)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。