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是保留字的话,应该提示错误才对

请各位看看是怎么回事
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
caozhenfei 2006-04-15
  • 打赏
  • 举报
回复
PWD是环境变量,在进入新的目录时候PWD就会改变为相应值。

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧