1

我知道当我输入命令 cd 时有一个变量 PWD 会改变。但是当我尝试手动更改它时,当前目录没有更改。如何直接操纵 PWD?

4

3 回答 3

4

POSIX 描述 PWD

对此变量的赋值可能会被忽略。

赋值在 bash、dash、ash、zsh 或 ksh 中并不特殊,并且该值将在下次 shell 更改目录时被简单地覆盖。

于 2016-02-29T19:51:08.720 回答
2

虽然其他 shell 也可能支持这样的变量,但该$PWD变量通常特定于 bash shell。

bash手册说:

残疾人士

cd 内置设置的当前工作目录。

这意味着它会在您使用cd内置更改目录时设置,但 bash 在设置时不会更改当前目录$PWD

于 2016-02-29T19:38:50.580 回答
0

至少在我运行 bash 的 Mac 和 Linux 机器上,您可以覆盖该变量,因此运行 PWD=/ 会将您的当前目录(在提示符中)更改为 /。

bash 中的变量 PWD 控制着 shell 的工作目录(同样只有提示符),您将看到 PWD= 命令之后的目录已更改,但 pwd 命令不受更改的影响。

<0>xxxx@dhcp89-089-034:~$ PWD=/
<0>xxxx@dhcp89-089-034:/$ pwd
/Users/xxxx

现在环境变量 PWD 是一个 bash 提示符,不是真正的工作目录,除非您实际使用“cd”命令,否则修改它也不是一件有用的事情。

于 2016-02-29T19:38:14.377 回答