设置$ PATH时如何处理空格


16

我想将sublime lib添加到我的路径中,但是其中有一个空格。

我已经尝试过显而易见的方法,例如您可以在终端中进行导航(例如/Applications/Sublime\ Text\ 2.app/Contents

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

但是我仍然得到错误

/Applications/Sublime: No such file or directory

我可以重命名,但很好奇如何解决。我正在使用bash。


尝试export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH吗?另外,这是换行符吗?
娴静的

不行,当我将其粘贴时,不会出现新的一行。您的建议没有帮助,它扼杀了我的路径,因此无法使用vi,必须切换到其他shell才能改回来。
肖恩·维达

1
demure的建议应该做到这一点,但是要使用双引号:export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH",否则$ PATH将不会扩展。
jaume 2013年

我本来是用双引号将其括起来的,但是在.bashrc中,它仍然不喜欢它。
肖恩·维达

你能更精确些吗?“不喜欢”是什么意思?你得到一个错误(哪个)?还是根本行不通?
Jaume

Answers:


15

使用反斜杠或引号,不能同时使用。您将序列反斜杠-空格放在PATH值中。

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

要么

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

确保不要换行:它必须是空格,而不是换行符。

请注意,如果您/Applications/Sublime: No such file or directory在该export PATH=…行中看到类似的错误,则该行中存在语法错误,例如等号后的空格:分配不会尝试查找目录。如果错误是在稍后的某个时间出现,则不是由于PATH值引起的,或者不是由于非常间接的原因引起的:完全$PATH不存在条目是可以的,并且不存在的目录也不会导致错误消息。


4

如果将路径正确设置为.bash_profile,无论使用双引号还是反斜杠转义,并且其中有空格,则需要使用双引号调用变量

例如,if .bash_profile设置如下:

export SUBLIMEPATH="/Applications/Sublime Text 2.app/Contents"
export PATH=$PATH:$SUBLIMEPATH/SharedSupport/bin/subl

不能cd $SUBLIMEPATH改变当前目录,你会得到No such file or directory错误。但是可以使用双引号cd "$SUBLIMEPATH"

希望对您有所帮助。


3

为了解决它,我做了一个simlink

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/sublime/bin/subl

然后,通过在〜。/ bashrc上使用vi将其添加到我的路径中

export PATH="/usr/local/sublime/bin/:$PATH"

记住要获取.bashrc来获取您的更改

source ~/.bashrc

1

这不能回答问题。但是,它回答了其中一个答案,并讨论了类似的过程。

也可以通过编辑.bash_profile.bashrc(无论是主目录中的BASH配置文件)来创建Sublime Text的别名。

alias sublime="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"

为此,必须同时使用转义反斜杠和引号。特别要注意的是,这与上述导出PATH的情况大不相同,因为在这种情况下,只做一个或另一个,而不是两者都有意义。

还请注意,如官方Sublime文档和许多其他来源所声称的那样,不必先创建符号链接。这个关于StackOverflow的答案是正确的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.