在while循环外时,无法读取从while循环内存储的变量

我一生无法理解为什么我无法在while循环" title="while循环">while循环之外阅读postPrioity。我尝试过“ export postPrioity =“

500””仍然无法正常工作。

有任何想法吗?

-或在计划文字中-

#!/bin/bash

cat "/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 <--- 1

weeeeeeeeee ---> 500 <--- 1

weeeeeeeeee ---> 500 <--- 1

weeeeeeeeee ---> <--- 2

回答:

管道操作员创建一个子外壳,请参阅BashPitfalls和BashFAQ。解决方案:不要使用cat,反正毫无用处。

#!/bin/bash

postPriority=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

回到顶部