仅当某个路径存在现有可执行文件时,我才尝试为程序设置别名。到目前为止,我一直在我的所有脚本中使用双引号来表示路径和别名,但是在将它们与包含空格的路径一起使用时遇到了问题。
例如,我因此设置了一个变量:PATH_TO_SUBL="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
. 测试它 ( [[ -x $PATH_TO_SUBL ]]
) 有效,但在别名中使用它不起作用(alias subl=$PATH_TO_SUBL
导致 bash 返回/Applications/Sublime: No such file or directory)。
当我用单引号和转义空格 ( PATH_TO_SUBL='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl'
) 设置它时,测试和别名都有效。这是为什么?