工作中用到一个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
解决方案二:
将变量存入文件,然后读取文件
网友评论