Я использую Red Hat Enterprise 5.3, и я пытаюсь добавить каталог к своей переменной $path, но это имеет пробелы в нем. Переменная $path является разграниченным пространством, поэтому как я дифференцирую пространство в полном пути от пространства, которое разделяет пути?
Разве $PATH не разграничен двоеточием? Так или иначе необходимо выйти из пробелов с \
. Если Вы хотели назвать каталог my dir
, Вы сделали бы что-то вроде этого:
PATH=/bin /usr/bin /home/user/my\ dir /sbin
Этот путь является просто примером, не копируйте его дословно.
Похоже, что Brad использует 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
В моем случае (использующий csh) переменная $PATH портила его и препятствовала тому, чтобы $path работал, таким образом, вот обходное решение:
set savePATH = $PATH
set path = ($path /usr/my\ dir/has\ spaces\ in\ it)
set PATH = ($savePATH)
Протест: пути с пробелами должны быть добавлены в последний раз, если Вы добавите путь непространства к пути то после этого он автоматически обновит $PATH и повредит его снова.