我有以下代码:
PWD="$(pwd)"
echo $PWD
cd
echo $PWD
如果我在/home/USER/sandbox
内运行,则上述输出为:
/home/USER/sandbox
/home/USER
为什么PWD
不保留其价值?有没有办法让它保持其价值?
答案 0 :(得分:1)
关键是您调用了变量 PWD
。这是Bash专门使用的几个全大写名称之一:
PWD
cd
命令设置的当前工作目录。
在每个cd
命令之后,$PWD
更新为匹配。
我建议您使用小写字母作为变量名,以避免出现这样的意外情况。
答案 1 :(得分:-1)
如果我在命令行中键入所有这些命令,我发现WD会保留"保留它的值"。
但是我使用各种脚本多次遇到此问题,根本原因是一个shell会话(和/或脚本)没有将其环境转移到另一个。常见的解决方案包括在一个脚本中执行我想要执行的所有操作,并将值保存在文件中以供以后使用。
希望这有帮助。