Ответы:
В оболочке Bash:
export FOO="/a/b/c"
а вы не хочу использовать $ path. Это особая переменная.
Маловероятно, что вам нужна ваша переменная в среде.
Итак, в csh вместо setenv
, ты можешь сделать:
set dir="/a/b/c/d/e/f"
cd $dir
или в баш, а не export
:
dir="/a/b/c/d/e/f"
cd $dir
set dir="/a/b/c/d/e/f"
а также setenv dir "/a/b/c/d/e/f"
?
setenv
экспортирует переменные, чтобы они были доступны в дочерних процессах. set
устанавливает переменные, которые будут использоваться только в текущей среде (сценарий или интерактивная оболочка). Большую часть времени вам нужно только использовать set
, Также, set
поддерживает массивы и setenv
не делает.
Используйте экспорт.
export your_path = "/ a / b / c / d / e / f"
cd $ your_path
Если вы хотите, чтобы он сохранялся при входе в систему, вам нужно отредактировать его в файле .profile.
~/.bash_profile
или, для общесистемного эффекта, /etc/profile
, +1 за упоминание о сохранении этого, в любом случае.
export
, В Баш или sh
, your_path="/a/b/c/d/e/f"
почти всегда достаточно.
Если вы просто хотите использовать путь для одного сеанса, установите переменную как обычно
set long="/some/long/path/to/a/directory"
Вы можете тогда cd "$long"
так часто, как вам нравится, пока оболочка не завершится или вы не установите long
снова.
Если вы заинтересованы в том, чтобы переменная была доступна процессам, запущенным из сеанса оболочки, вам следует установить ее в своей среде
setenv long "/some/long/path/to/a/directory"
Если вы хотите, чтобы переменная была доступна для каждого сеанса, а не только для текущего, вам нужно будет установить ее в своем контроле запуска оболочки.
$EDITOR ~/.cshrc
Затем добавьте set
линия или setenv
показанная выше строка для автоматической установки переменной или переменной среды для каждого сеанса работы csh.
Для csh вы, вероятно, хотите использовать CDPATH , Для bash используйте CDPATH вместо.
Например (bash):
prompt$ export CDPATH=:/a/b/c/d/e
prompt$ cd f
cd /a/b/c/d/e/f
Вы также можете добавить больше целей каталога, разделенных двоеточиями. Ведите двоеточие, чтобы CDPATH сначала проверял ваш текущий рабочий каталог!
csh
) или более распространенная оболочка Borne / Bash (sh
а такжеbash
соответственно)?