这是对https://apple.stackexchange.com/questions/52459/的跟进,是关于 bash 中的意外行为。总结该链接中的内容,问题是将终端中的当前目录复制到一个临时变量,例如粘贴板,然后使用它在不同的终端窗口中切换目录。那里提供的解决方案几乎以最有效的方式解决了它!但是,当我实际尝试使用具有正确转义目录名称的临时变量更改目录时,它似乎在 bash 中无法正常工作。
我的最小工作示例如下:
alias cwd='printf "%q/\n" "$(pwd)"'
现在在终端中:
>$ mkdir tmp
>$ cd tmp
>$ mkdir test\ dir
>$ cd test\ dir
>$ cwd | pbcopy
在新终端中:
>$ echo "$(pbpaste)"
/Users/foo/tmp/test\ dir/
>$ cd $(pbpaste)
-bash: cd: /Users/kaushik/tmp/test\: No such file or directory
>$ cd "$(pbpaste)"
-bash: cd: /Users/kaushik/tmp/test\ dir/: No such file or directory
我很难弄清楚我做错了什么。我唯一确定的是,这是一个 bash 问题,而不是 OS X 上出现的问题。
感谢您在这方面的帮助,顺便说一句,事实证明,经过这么多年,我最终不得不写下我的第一个堆栈溢出帖子!