Как я могу создать сценарий оболочки, который перенесет меня в папку? [дубликат]

У меня есть специальная рабочая область, в которую я должен перейти досадно долго. вроде / действительно / чертовски / раздражающе / долго / и / это / занимает / некоторое время / для / типа. Я хотел написать сценарий оболочки, который просто cd меня в него, но, конечно, это не сработает. Есть ли другой способ сделать так, чтобы я мог просто cd в этот каталог без хлопот набирать его?

Не говори мне копировать и вставлять.

Спасибо!

0
задан 24 July 2018 в 11:13

3 ответа

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

Необходимо записать функцию или псевдоним, который будет работать в текущей интерактивной оболочке. Один из них будет работать:

alias go='cd /really/damn/annoyingly/long/and/it/takes/a/while/to/type'
# or
go() { cd /really/damn/annoyingly/long/and/it/takes/a/while/to/type; }

Выберите один, сохраните его в своем ~/.bashrc, введите source ~/.bashrc и необходимо быть готовы пойти.

5
ответ дан 28 October 2019 в 07:14

Символьная ссылка

Вы могли использовать символьную ссылку, которая является специальным типом файла, который связывается с другим файлом:

ln -s "/really/damn/annoyingly/long/and/it/takes/a/while/to/type" link_name

Это создает названную символьную ссылку link_name который связывается с /really/damn/annoyingly/long/and/it/takes/a/while/to/type.

Затем в оболочке:

~$ cd link_name
~/link_name$ 

Переменная Shell

Или создайте переменную:

variable_name='/really/damn/annoyingly/long/and/it/takes/a/while/to/type'

Помещенный это в Ваш ~/.bashrc, выполненный source ~/.bashrc, затем Вы можете просто cd "$variable_name".

1
ответ дан 28 October 2019 в 07:14

На самом деле Вы CD CAN в сценарии - просто помещаете Ваш cd команда в сценарии. Необходимо выполнить его как это хотя: . ./script1. . в передней стороне заставляет сценарий работать в Вашей текущей оболочке вместо того, чтобы запустить новую.

~$ cat script1
cd ./ISO
~$ . ./script1
~/ISO$
0
ответ дан 28 October 2019 в 07:14

Другие вопросы по тегам:

Похожие вопросы: