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


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

похоже, что Брэд использует 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 после этого, он автоматически обновит $PATH и снова сломает его.

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]