x='1,2,3,4'
IFS=$','
for entry in x
do
echo $x
unset $x
echo $x
done
echo $x
输出结果是
1
2
3
4
但for循环里面不是已经把x删除了吗那为什么还能打出1,2,3,4呢?如果x是局部变量那最后打出来的x还是空的。为什么呢?谢谢!
x='1,2,3,4'
IFS=$','
for entry in x
do
echo $x
unset $x
echo $x
done
echo $x
输出结果是
1
2
3
4
但for循环里面不是已经把x删除了吗那为什么还能打出1,2,3,4呢?如果x是局部变量那最后打出来的x还是空的。为什么呢?谢谢!
首先unset 变量,而不是unset $变量。
其次你在unset前echo了一次,所以是会打印出来的。之后的两次就没有了。参考下面的代码
#!/bin/bash
x='1,2,3,4'
IFS=$','
for entry in x
do
echo 'a'$x
unset x
echo 'b'$x
done
echo 'c'$x