为什么我的PWD变量不保留其值?

时间:2017-10-12 14:37:35

标签: bash

我有以下代码:

 PWD="$(pwd)"
 echo $PWD
 cd
 echo $PWD

如果我在/home/USER/sandbox内运行,则上述输出为:

 /home/USER/sandbox
 /home/USER

为什么PWD不保留其价值?有没有办法让它保持其价值?

2 个答案:

答案 0 :(得分:1)

关键是您调用了变量 PWD 。这是Bash专门使用的几个全大写名称之一:

  

PWD

     

cd命令设置的当前工作目录。

在每个cd命令之后,$PWD更新为匹配。

我建议您使用小写字母作为变量名,以避免出现这样的意外情况。

答案 1 :(得分:-1)

如果我在命令行中键入所有这些命令,我​​发现WD会保留"保留它的值"。

但是我使用各种脚本多次遇到此问题,根本原因是一个shell会话(和/或脚本)没有将其环境转移到另一个。常见的解决方案包括在一个脚本中执行我想要执行的所有操作,并将值保存在文件中以供以后使用。

希望这有帮助。