引起問題的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