A="1"
B="2"
C="/home/test/a"
cat $C | grep -v '^#' | while read LINE
do
if [ "x$A" = "x1" ]; then
B=$A
echo $B
fi
done
echo $B
第一个echo打印的是1
第二个echo打印的是2
原因及使用全局变量的方法:
cat $C | grep -v '^#' | while read LINE你的这句开启了一个子shell,
do
if [ "x$A" = "x1" ]; then
export B=$A
echo $B
fi
done
你在子shell中对B重新赋值是不能影响到父shell的,所以你最后echo $B时值没有改变。
while read LINE
do
if
B=$A
fi
done<$C
这样是可以重新赋值的
本文详细解读了Shell脚本中通过读取文件内容并使用条件语句进行变量赋值的过程,包括如何在不同层级的Shell环境中进行变量作用域的管理,并通过实例展示了如何使用if语句和read命令实现数据处理与输出。
627

被折叠的 条评论
为什么被折叠?



