Условно завершить выполнение сценария оболочки
Я пишу bash-скрипт, который использует getopt для обработки ряда опций, предоставленных после имени скрипта.
Я получаю доступ к своей оболочке через PuTTy.
Я вызываю сценарий с. scriptname.sh -o --options (есть ли лучший способ выполнить скрипт bash?)
Я хотел бы иметь возможность прервать / остановить сценарий, но всякий раз, когда я использую exit
он не только выходит из скрипта, но и закрывает окно терминала /puTTy.
... что-то вроде поражения цели, потому что я пытаюсь настроить какой-то текст --help для вывода текста, который отображает текст, но не выполняет остальную часть сценария.
Что за сделка exit
и что я должен использовать, чтобы остановить / прервать сценарий, не закрывая родительское окно консоли?
1 ответ
С помощью exit
правильно, вы просто не выполняете свой скрипт правильно.
С помощью .
так же, как использование source
команда (help source
для использования) и не очень хорошая идея, если вы действительно хотите выполнить скрипт.
Вместо chmod a+x scriptname.sh
а затем использовать ./scriptname.sh
чтобы вызвать это.
Разница в том, что source
обрабатывает скрипт так, как если бы он был напечатан вами; это работает в том же bash
сеанс, который вы проводите в интерактивном режиме. Это означает, что любые переменные, которые он изменяет, остаются измененными после его завершения. Это также означает, что если вы скажете сценарию exit
, он будет корректно завершать вашу текущую сессию Bash.