У меня есть сценарий оболочки, который изменяет каталог и затем работает. Я хочу, чтобы изменение каталога пузырилось к командной строке, после того как сценарий завершается.
Так, я выполняю его с:
. script
Однако теперь, когда сценарий завершается, целое окно завершается. Существует ли способ зафиксировать это?
Моя оболочка является ударом.
Существует два способа исправить это в Mac
A> Пойдите на ваше усмотрение для Терминала, [Общий] Выбор, и снимите флажок, который говорит, "Закрывают окно, если оболочка выходит чисто".
B> Укажите на свой любимый текстовый редактор на ~/Library/Preferences/com.apple. Terminal.plist
Найдите строки:
< key>ShellExitAction< /key> < integer>1< /integer>
измените 1 на 2 и перезапустите терминальное приложение..
B является в основном тем же как A, но сделанный вручную.
Делает script
содержите exit
оператор? Помните, что точка (определение источника) выполняет Ваш код в текущей оболочке. Таким образом, если это имеет exit
, Ваши текущие выходы оболочки. Можно хотеть проверить сценарий и изменить любого exit
кому: return
.
Вы можете обнаруживать быть полученным (где Вы хотели бы сделать return
) и быть выполненным (где можно хотеть exit
)
[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'