在bash中读取多行而不产生新的subshel??l?
发布时间:2020-12-16 01:25:45 所属栏目:安全 来源:网络整理
导读:我正在做一些类似的事情 var=0 grep "foo" bar | while read line; do var=1 done 不幸的是,这不行,因为管道导致while在subshel??l中运行.有没有更好的方法来做到这一点?如果有另外一个解决方案,我不需要使用“read” 我看过Bash variable scope这是相似的,
我正在做一些类似的事情
var=0 grep "foo" bar | while read line; do var=1 done 不幸的是,这不行,因为管道导致while在subshel??l中运行.有没有更好的方法来做到这一点?如果有另外一个解决方案,我不需要使用“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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |