当我在 Linux 系统上运行“ssh”时,我看到了奇怪的行为。在posix模式下启动时,我将其部分追踪到bash的差异。
% bash --posix
% ln -s /tmp mytmp
% cd mytmp
% pwd
/home/user/mytmp
bash 手册页在 posix 模式下有这些项目:
--> 当在逻辑模式下调用 cd 内置命令,并且由 $PWD 构造的路径名和作为参数提供的目录名不引用现有目录时,cd 将失败而不是退回到物理模式。
--> 当 pwd 提供了 -P 选项时,它会将 $PWD 重置为不包含符号链接的路径名。
--> 内置 pwd 验证它打印的值是否与当前目录相同,即使它没有被要求使用 -P 选项检查文件系统。
这些听起来都不像我所看到的。
我似乎没有在启动文件中设置任何特殊的 PWD 相关变量。我知道 --posix 控制使用哪些启动文件。
是否有一个变量可以像符号链接追逐一样显式控制?
我可以想出几种方法来“撤销”这种效果,但我需要知道它为什么会发生。
我正在使用 ssh 运行 make,然后 make 正在使用pwd
,而那个 pwd 给出了错误的答案。它必须直接从 ENV 设置中获取。我想在某个地方找到一些关于正在发生的事情的文档。