PATH vs symlink subl:找不到命令

时间:2019-04-02 15:01:28

标签: bash path sublimetext3

当我在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,则它不会打开。

bin中的

subl具有以下权限:-rwxr-xr-

我正在通过将其添加到.bashrc中来添加此路径:

export PATH="$PATH:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/"

我不太确定为什么不使用命令subl打开它,并且我不明白为什么如果它在我的PATH中需要链接。我更愿意使用我了解的解决方案来解决它。

1 个答案:

答案 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的进程继承它的。)