我有一个较大的脚本,但这个较小的脚本显示了问题:
#!/bin/bash
x=0
if [[ $x == 0 ]]
then
ls | while read L
do
x=5
echo "this is a file $L and this is now set to five --> $x"
done
fi
echo "this should NOT be 0 --> $x"
如果变量设置在 while 循环之外,那么它会按我的预期工作。bash 版本是 3.2.25(1)-release (x86_64-redhat-linux-gnu)。如果这是显而易见的事情,我会感到很愚蠢。