加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读