1

Есть много ответов о том, как добавить каталог в $ PATH. Тем не менее, я ищу способ добавить его к пути временно.

Например, при запуске сценария с именем sudo не все сценарии имеют полный путь к каталогу, и я хотел бы добавить его для одного экземпляра, чтобы сценарий мог выполняться.

2 ответа2

0

Хороший подход к этому - включить пути в команды скрипта. Так что вместо

ip addr

Вы бы вместо этого

/sbin/ip addr

Это устраняет зависимость от пути, имеющего правильные записи. Вы можете обновить переменную пути в сценарии, и она будет существовать только для сценария и любых дочерних процессов, и будет отменена после их завершения.

export PATH=$PATH:/sbin

Это добавляет /sbin к существующему пути.

0

Команда env делает именно то, что вы хотите:

env variable=value command

Для продолжительности command $variable устанавливается в value , но текущая среда оболочки не изменяется и сохраняется для последующих команд.

В вашем случае вы хотели бы что-то вроде:

env PATH=/sbin:$PATH command

Обратите внимание, что env является внешней командой, поэтому неэкспортированные переменные и псевдонимы не доступны во время выполнения command .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .