在 bash 中运行“cd -”时波浪符号扩展失败

在 bash 中运行“cd -”时波浪符号扩展失败

最近我发现有时无法使用cd -回到上一个目录。它给出错误-bash: cd: ~/whatever_dir: No such file or directory。仔细查看发现,只有当最后一个目录包含波浪号时才会出现错误。波浪号似乎无法展开。但是“cd ~”可以成功切换到我的主目录。问题是什么?我知道波浪号不会在引号内展开,但是执行 时存储的最后一个目录不在引号中cd -,对吗?另外,cd -以前对我来说是有效的。

答案1

问题的可能根源是作为PROMPT_COMMANDbash 配置的一部分执行的:

PWD="${PWD/$HOME/~}"

不要重新分配PWD不同的值。这只会破坏事物。

答案2

您的 shell 中有一个严重的错误,您应该报告。您说在这种情况下,$OLDPWD显示~/whatever_dir。它不应该。

以下是我所拥有的内容:

fge@erwin ~/whatever_dir $ pwd
/home/fge/whatever_dir
fge@erwin ~/whatever_dir $ cd -
/home/fge
fge@erwin ~ $ echo $OLDPWD
/home/fge/whatever_dir

~只是 shell 用来表示主目录的便捷快捷方式。我的是/home/fge。无论如何,$OLDPWD应该显示绝对路径,而不是包含 的路径~,除非您有一个名为 的目录~

相关内容