PATH vs symlink subl:找不到命令

PATH vs symlink subl: command not found

当我 echo $PATH 在我的 mac 上时,我看到:

/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
使用 vscode 编辑器打开项目的

运行 code 有效,但是 subl 得到错误 -bash: subl: command not found。我注意到网上很多人建议 symlink 到 usr/local/bin 但是我不明白如果它已经在我的 PATH 中,为什么这是必要的。

如果我 cd /Applications/Sublime\ Text.app/Contents/SharedSupport/bin 我看到那里存在 subl

如果我 运行 在我的终端 /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl 中输入以下内容,那么 sublime 就会打开。但是,如果我尝试直接从该垃圾箱内部 运行 subl 然后它不会打开。

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

我通过将其添加到我的 .bashrc:

来将其添加到我的路径中
export PATH="$PATH:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/"

我不太确定为什么它没有用命令 subl 打开,我不明白为什么我需要 link 如果它在我的 PATH 中。我更愿意用我理解的解决方案来修复它。

您两次转义 space。引号隐式转义它们包含的每个字符,包括用于转义 space 的 \。以下任一方法都有效:

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

您选择哪个是偏好问题。

请注意,您也可以删除 export。您导出 名称 ,而不是值,因此一旦 PATH 被导出,它就会保持导出状态。 (实际上,PATH 是默认导出的,因为您从启动 shell 的进程继承了它。)