在下面的代码中,它在内部while循环中打印正确的i
值,但是在内部while循环中它打印出0:
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
答案 0 :(得分:-1)
默认情况下,变量在shell脚本中具有全局范围,这使得" i"全球。如果您想将变量设为本地变量,请使用关键字" local" ,例如:local i=0
有关详细信息,请查看链接http://www.bashguru.com/2008/06/bash-variables-scope.html