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

3 ответа3

2

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

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

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

1

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

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

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

1

Похоже, что Брэд использует 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .