在while循环外时,无法读取从while循环内存储的变量
我一生无法理解为什么我无法在while循环" title="while循环">while循环之外阅读postPrioity。我尝试过“ export postPrioity =“
500””仍然无法正常工作。
有任何想法吗?
-或在计划文字中-
#!/bin/bashcat "/files.txt" | while read namesInFile; do
postPrioity="500"
#This one shows the "$postPrioity" varible, as '500'
echo "weeeeeeeeee ---> $postPrioity <--- 1"
done
#This one comes up with "" as the $postPrioity varible. GRRR
echo "weeeeeeeeee ---> $postPrioity <--- 2"
输出:(我在files.txt中只有3个文件名)
weeeeeeeeee ---> 500 <--- 1weeeeeeeeee ---> 500 <--- 1
weeeeeeeeee ---> 500 <--- 1
weeeeeeeeee ---> <--- 2
回答:
管道操作员创建一个子外壳,请参阅BashPitfalls和BashFAQ。解决方案:不要使用cat
,反正毫无用处。
#!/bin/bashpostPriority=0
while read namesInFile
do
postPrioity=500
echo "weeeeeeeeee ---> $postPrioity <--- 1"
done < /files.txt
echo "weeeeeeeeee ---> $postPrioity <--- 2"
以上是 在while循环外时,无法读取从while循环内存储的变量 的全部内容, 来源链接: utcz.com/qa/405016.html