Пробел в пути к каталогу в переменной $ path в Linux

3654
Brad

Я использую Red Hat Enterprise 5.3 и пытаюсь добавить каталог в переменную $ path, но в ней есть пробелы. Переменная $ path разделена пробелами, так как я могу отличить пространство в абсолютном пути от пространства, которое разделяет пути?

0
рад, что это помечено как "tcsh", но вы должны явно указать в теле (или заголовке, или обоих) оболочку, которую вы используете quack quixote 15 лет назад 0
Согласовано. Я тот, кто добавил тег tcsh, но это было мое предположение. Брэд - я правильно понял? Doug Harris 15 лет назад 0

3 ответа на вопрос

2
Javier

Разве $ PATH не разделен двоеточием? В любом случае, вам нужно покинуть пространство с \. Если бы вы хотели иметь каталог с именем my dir, вы бы сделали что-то вроде этого:

PATH=/bin /usr/bin /home/user/my\ dir /sbin 

Этот путь просто пример, не копируйте его дословно.

1
Doug Harris

Похоже, что Брэд использует csh или tcsh - у этих оболочек есть и $ path, и $ PATH. Оболочка поддерживает оба, когда вы меняете один.

Способ добавления каталога с пробелами в $ path:

% echo $path /opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin % echo $PATH /opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin  % set path = ($path /tmp/directory\ with\ spaces)  % echo $path /opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin /tmp/directory with spaces % echo $PATH /opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin:/tmp/directory with spaces 
$ path работает так, как вы это показываете, но когда я повторяю $ PATH, вместо каждого пробела в пути появляется пробел. Brad 15 лет назад 0
Какую оболочку вы используете? Doug Harris 15 лет назад 0
1
Brad

В моем случае (с использованием csh) переменная $ PATH мешала работе и не позволяла работать $ path, поэтому вот обходной путь:

set savePATH = $PATH set path = ($path /usr/my\ dir/has\ spaces\ in\ it) set PATH = ($savePATH) 

Предостережение: пути с пробелами должны добавляться последними, если после этого вы добавите непустой путь к пути, он автоматически обновит $ PATH и прервет его снова.

но теперь вы оставили каталог с пробелами в $ PATH; Вы должны "установить savePATH = ($ PATH: / usr / my \ dir / has \ space \ in \ it)". quack quixote 15 лет назад 0

Похожие вопросы