0
可能重複的變量範圍:
Bash Script - Variable Scope in Do-While loopbash腳本 - 在while循環
在下面的代碼,它打印的i
在內部while循環正確的值,但它打印0從內部while循環出來後:
string="Medicine"
for file in *
do
i=0
cat $file | while read line
do
echo $line
if [ "$line" == "$string" ];
then
i=`expr $i + 1`
echo $i
fi
done
echo $i
done
它是使用'功能外local'一個錯誤,你完全忽略了while循環在子shell中運行的事實,這是海報問題的根源。 – chepner