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