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

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

0
задан 07.10.2009, 23:59

3 ответа

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

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

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

2
ответ дан 24.11.2019, 03:42

Похоже, что 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
1
ответ дан 24.11.2019, 03:42
  • 1
    работает, поскольку Вы показываете его, но когда я повторяю $PATH существует a: вместо пространства в каждом пространстве пути. – Brad 08.10.2009, 01:18

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

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

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

1
ответ дан 24.11.2019, 03:42
  • 1
    , но теперь Вы оставили dir с пробелами от $PATH; необходимо "установить savePATH = ($PATH:/usr/my\dir/has\spaces\in\это)". – quack quixote 08.10.2009, 02:16

Теги

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