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

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

5
задан Doug Harris
источник

3 ответов

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

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

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

2
отвечен Javier 2009-10-07 19:46:51
источник

похоже, что Брэд использует 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
1
отвечен Doug Harris 2009-10-07 20:58:04
источник

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

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

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

1
отвечен Brad 2009-10-07 22:39:46
источник

Другие вопросы linux tcsh