当我在Mac上echo $PATH
时,我会看到:
/Users/me/.nvm/versions/node/v8.2.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin
运行code
可以使用vscode编辑器打开项目,但是subl
遇到错误-bash: subl: command not found
。我在网上注意到很多人建议将符号链接到usr/local/bin
,但是我不明白为什么它已经在我的PATH中是必要的。
如果我cd /Applications/Sublime\ Text.app/Contents/SharedSupport/bin
,我看到subl
存在。
如果我在终端机/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl
中运行以下命令,则会升华。但是,如果我尝试直接从该bin内部运行subl,则它不会打开。
subl
具有以下权限:-rwxr-xr-
我正在通过将其添加到.bashrc
中来添加此路径:
export PATH="$PATH:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/"
我不太确定为什么不使用命令subl
打开它,并且我不明白为什么如果它在我的PATH中需要链接。我更愿意使用我了解的解决方案来解决它。
答案 0 :(得分:1)
您两次转义空格。引号会隐式地转义它们包含的每个字符,包括用于转义空格的\
。以下任何一种都可以工作:
export PATH=$PATH:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/
export PATH="$PATH:/Applications/Sublime Text.app/Contents/SharedSupport/bin/"
您选择哪种优先选择。
请注意,您也可以放下export
。您导出的是名称而不是值,因此一旦导出PATH
,它就保持导出状态。 (实际上,PATH
默认情况下是导出的,因为您是从启动Shell的进程继承它的。)