shell中一个变量使用的困惑
hbcb 2006-04-15 09:15:26 近日写一个脚本,总达不到预想的目的,逐步缩小问题范围,最后有如下测试:
[root]# cat test
#!/bin/sh
cd /home
PWD=`pwd`
echo "1: $PWD"
cd /var
echo "2: $PWD"
cd /
echo "3: $PWD"
[root]# chmod +x test
[root]# ./test
1: /home
2: /var
3: /
[root]#
按预想,1,2,3显示的都应该是/home,但是没有给$PWD赋值,而$PWD的值却在变化,就和执行pwd命令一样
再测试:
[root]# cat test_A
#!/bin/sh
cd /home
a=`pwd`
echo "1: $a"
cd /var
echo "2: $a"
cd /
echo "3: $a"
[root]# chmod +x test_A
[root]# ./test
1: /home
2: /home
3: /home
[root]#
结果却正确了
只换了个变量的名字,结果就完全不一样了,如果说PWD是保留字的话,应该提示错误才对
请各位看看是怎么回事