美文网首页
shell脚本中管道符开启子shell变量传递

shell脚本中管道符开启子shell变量传递

作者: sunland_0416 | 来源:发表于2021-01-13 14:23 被阅读0次

工作中用到一个shell脚本
内部是循环,在循环内需要更改循环外的值
简单结构如下

####有问题脚本####
#!/bin/bash
#@author:sunland_0416
#@date:2021-01-13
list_true=""
list_false=""
cat abc.txt | awk 'NR>1' | while read name status
do
    echo $name $status
done
echo $list_true
echo $list_false

结果是 list_true和list_false肯定是空
因为管道符的原因,会开启子shell,而子shell跟父shell变量不是通用的

解决方案一:
采用如下结构

while read line
do
...
done < abc.txt

解决方案二:
将变量存入文件,然后读取文件

相关文章

网友评论

      本文标题:shell脚本中管道符开启子shell变量传递

      本文链接:https://www.haomeiwen.com/subject/uvvuaktx.html