爲什麼FILE_FOUND是0在這個開溜的結尾:Linux shell錯誤?變量賦值管道不起作用
FILE_FOUND=0
touch /tmp/$$.txt
ls -1 /tmp/$$.* 2>/dev/null | while read item; do
FILE_FOUND=1
echo "FILE_FOUND = $FILE_FOUND"
done
echo "FILE_FOUND = $FILE_FOUND"
rm -f /tmp/$$.txt 2>/dev/null
?? !!
在Unix上FILE_FOUND停留在1(因爲它應該),但在Linux(RedHat,Cygwin,..)它跳回到0!
它是Linux的shell功能,而不是bug? :)
請幫忙。
哪個Linux外殼您使用的?有很多,每個都有自己的「功能」。 – 2009-11-25 13:48:44
Duplicate:http://stackoverflow.com/questions/1789750/global-scope-of-variable – 2009-11-25 14:16:51
請注意,流水線中不需要'ls'的'-1'選項。 – 2009-11-25 14:19:25