В точности то, что написано в названии. Мне не очень повезло с поиском подходящей документации, чтобы узнать, что делает -xe в следующем случае использования:
#!/bin/bash -xe
что делают эти параметры и где это задокументировано?
Если вы прочитали страницу руководства для bash
вы найдете следующее в верхней части OPTIONS
раздел:
All of the single-character shell options documented in the description of the set builtin command can be used as options when the shell is invoked. In addition, bash interprets the following options when it is invoked...
И если вы читаете документацию по set
позже на странице руководства вы найдете:
-e Exit immediately if a pipeline (which may consist of a single simple command), a subshell command enclosed in parentheses, or one of the commands executed as part of a command list enclosed by braces (see SHELL GRAMMAR above) exits with a non-zero status. -x After expanding each simple command, for command, case command, select command, or arithmetic for command, display the expanded value of PS4, followed by the command and its expanded arguments or associated word list.
Другими словами, -e
немедленно завершает работу оболочки всякий раз, когда что-то возвращает ошибку (это часто используется в сценариях оболочки как отказоустойчивый механизм), и -x
позволяет подробное выполнение сценариев, чтобы вы могли видеть, что происходит.
Введите на консоли следующее, чтобы получить объяснение аргументов BASH:
bash -c "help set"
Чтобы ответить на ваш вопрос:
-e
Немедленно выйти, если команда завершается с ненулевым статусом.
-x
Печатайте команды и их аргументы по мере их выполнения.
Все односимвольные параметры оболочки, задокументированные в описании встроенной команды set, могут использоваться в качестве параметров при вызове оболочки.
Так что взгляните на установить встроенный.
Вы думаете о том, где вы устанавливаете -x set -e set -...? Бег help set
дает тех.
Где лучше всего прочитать документацию о том, какие параметры передаются в bash, такие как -x и -e? Я попробовал man 1 bash, но, похоже, он там не покрывается.
Прочтите раздел OPTIONS на странице руководства basj.
Я использую отлично Справочное руководство по Bash в качестве универсальной документации для языка Bash. Я нашел это более полезным, чем страницы руководства. Актуальный для вас раздел (описание ключей -e, -x можно найти здесь: установить встроенный