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

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

21
задан Doug Harris
10.01.2023 0:18 Количество просмотров материала 2898
Распечатать страницу

3 ответа

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

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

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

2
отвечен Javier 2023-01-11 08:06

похоже, что Брэд использует 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 2023-01-11 10:23

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

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

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

1
отвечен Brad 2023-01-11 12:40

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

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх