6

Например , есть длинный путь , который я cd очень часто. Как мне сохранить путь в переменной, чтобы я мог использовать его каждый раз?

Например: я хочу быть в состоянии сделать это

cd $path

вместо

cd /a/b/c/d/e/f 

каждый раз.

6 ответов6

10

В оболочке Bash:

export FOO="/a/b/c"

И вы не хотите использовать $ path. Это особая переменная.

7

Маловероятно, что вам нужна ваша переменная в среде.

Итак, в csh вместо setenv вы можете сделать:

set dir="/a/b/c/d/e/f"
cd $dir

или в Bash вместо export:

dir="/a/b/c/d/e/f"
cd $dir
6

предполагая, что вы действительно хотите синтаксис csh/tcsh (как вы отметили свой вопрос), поставьте это

setenv P1 "/a/b/c/d/e/f"

на ваш .tcshrc

после этого вы можете сделать

cd $P1
3

Используйте экспорт.

export your_path = "/a/b/c/d/e/f"

cd $ your_path

Если вы хотите, чтобы он сохранялся при входе в систему, вам нужно отредактировать его в файле .profile.

0

Для csh вы, вероятно, хотите использовать cdpath . Для bash используйте CDPATH .

Например (bash):

prompt$ export CDPATH=:/a/b/c/d/e

prompt$ cd f
cd /a/b/c/d/e/f

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

0

Если вы просто хотите использовать путь для одного сеанса, установите переменную как обычно

set long="/some/long/path/to/a/directory"

Затем вы можете cd "$long" столько раз, сколько захотите, пока оболочка не завершится или вы снова не установите long .

Если вы заинтересованы в том, чтобы переменная была доступна процессам, запущенным из сеанса оболочки, вам следует установить ее в своей среде

setenv long "/some/long/path/to/a/directory"

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

$EDITOR ~/.cshrc

Затем добавьте строку set или строку setenv показанную выше, чтобы автоматически устанавливать переменную или переменную окружения для каждого сеанса csh.

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