引起问题的shell程序:
$ cat tt.txt
1
2
3
$ cat tt.sh
#!/bin/sh
tt=0
cat tt.txt|while read num;
do
<span style="white-space:pre"> </span>tt=5
<span style="white-space:pre"> </span>echo $tt
done
echo $tt
执行tt.sh,你的期望是得到5对吧,但结果是出乎意料的
$ ./tt.sh
5
5
5
0
这是为什么呢?
我们先看一下,能够得到正确结果的脚本是长什么样的:
$ cat tt.sh
#!/bin/sh
tt=0
while read line;
do
tt=5
echo $tt
done < tt.txt
echo $tt
$ ./tt.sh
5
5
5
5