#csh #tcsh
#csh #tcsh
Вопрос:
В bash я могу установить временную переменную окружения только для одной команды следующим образом:
LD_LIBRARY_PATH=/foo/bar myprogram
Могу ли я сделать что-то подобное в csh / tcsh? Я мог бы сделать
setenv LD_LIBRARY_PATH /foo/bar; myprogram; unsetenv LD_LIBRARY_PATH
, но это приведет к потере любого предыдущего значения, которое имела переменная.
Ответ №1:
В csh вы можете либо попробовать env
:
% env LD_LIBRARY_PATH=/foo/bar myprogram
или подоболочка:
% (setenv LD_LIBRARY_PATH /foo/bar; myprogram)
Комментарии:
1. Меня сбило с толку отсутствие знака равенства во второй версии. Показывает, что мне нужно внимательно прочитать 😉
2. Первый из них использует внешнюю программу (env), которая не является tcsh, следовательно, вы потеряете свой контекст, такой как псевдонимы. Поэтому я бы предложил использовать вторую.