当前位置: 技术问答>linux和unix
shell中一个变量使用的困惑
来源: 互联网 发布时间:2015-11-20
本文导语: 近日写一个脚本,总达不到预想的目的,逐步缩小问题范围,最后有如下测试: [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]# 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是保留字的话,应该提示错误才对
请各位看看是怎么回事
[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是保留字的话,应该提示错误才对
请各位看看是怎么回事
|
PWD是环境变量,在进入新的目录时候PWD就会改变为相应值。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。