Добавление пути с пробелами не работает в OSX El Capitan

Я попытался добавить путь к моему .bash_profile, в котором есть пробел (/Applications/Racket\ v6.12/bin), и после этого он появляется в моей переменной PATH, как и ожидалось, но не дает мне доступа к пути. Я сделал обычное «закрыть все окна терминала», «выйти из системы и снова войти» и т. д., и несмотря ни на что, добавленный путь не работает (я не могу запустить какие-либо двоичные файлы из этого пути в моем терминале без указав полный путь перед ним).

Я даже пытался добавить его в /etc/paths вместо моего .bash_profile, чтобы сделать его общесистемным (конечно, предварительно удалив его из моего .bash_profile). В этом даже не должно быть необходимости, потому что путь появляется в моей переменной PATH при использовании .bash_profile, но я подумал, что все равно попробую.

Я даже сделал это, чтобы попытаться избежать двойных кавычек:

export PATH="\"/Applications/Racket\ v6.12/bin\":$PATH"

и различные комбинации вышеперечисленного (без экранированного пробела и т.д.)

Единственное решение, которое я нашел, это создать символическую ссылку без пробелов. Например, я сделал это:

sudo ln -s /Applications/Racket\ v6.12/ /usr/local/racket

а затем я добавил /usr/local/racket/bin к своему пути (работает с использованием либо .bash_profile, либо /etc/paths).

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

Это сработало, но я не могу поверить, что пользователям приходится прибегать к созданию символических ссылок, чтобы их пути с пробелами работали. Я что-то упустил здесь? Есть ли более идиоматический способ добавить путь с пробелами? Я использую OSX El Capitan 10.11.6.


person Stephen Smith    schedule 29.03.2018    source источник


Ответы (1)


Хорошо, ответил на мой собственный вопрос, поэтому разместите его здесь для всех, у кого есть аналогичная проблема. Я попробовал это, увидев другой пример: export PATH="/Applications/Racket v6.12/bin":$PATH, и это сработало. Ключ заключается в двойных кавычках вокруг пути ТОЛЬКО с пробелами, а не вокруг всей строки переменной, как я сделал по ошибке.

person Stephen Smith    schedule 29.03.2018