脚本的目的是用while循环处理一个文本,根据判断结果赋值给全局变量,循环结束后输出全局变量,结果却一直是初始值。
tmpResult=''
cat sed.txt | while read nodeName
do
tmpResult='异常,'
done
echo $tmpResult
输出的tmpResult永远是空;
循环体里确实有赋值,怀疑循环体的变量和外面的变量不是同一个了,换成for循环继续测试。
tmpResult=''
for nodeName in `cat sed.txt`
do
echo $nodeName
tmpResult='异常,'
done
echo $tmpResult
这样改动之后,输出结果就符合预期了。
使用while read其实有它的用武之地,比如read多个变量到循环中处理,如果想这么用可以参考下面的文章,重定向给while循环体是个不错的选择。