Что делает передача параметров -xe в / bin / bash

59

Именно то, что говорит название. Мне не повезло найти нужную документацию, чтобы увидеть, что -xe делает в следующем случае:

#!/bin/bash -xe

что делают эти параметры и где это задокументировано?

образный
источник
Вы говорите о параметрах, которые передаются в двоичный файл BASH, или вы говорите о функциях и параметрах в языке сценариев BASH?
Ричард Келлер
Ссылаясь на параметры, которые передаются в двоичный файл BASH, например: #! / Bin / bash -xe
образный

Ответы:

56

Если вы прочитали справочную страницу, bashвы найдете следующее в верхней части OPTIONSраздела:

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

И если вы setпозже прочитаете документацию по команде на странице руководства, вы найдете:

 -e немедленно выйти, если конвейер (который может состоять из
 одна простая команда), команда subshell, заключенная в скобки,
 или одна из команд, выполняемых как часть списка команд, заключенного в
 фигурные скобки (см. ОБРАЗЕЦ ОБОЛОЧКИ выше) выходят с ненулевым статусом. 

 -x После развертывания каждой простой команды, для команды, дела
 команда, выберите команду или арифметика для команды, дисплей
 расширенное значение PS4, за которым следуют команда и ее
 расширенные аргументы или связанный список слов.

Другими словами, -eзаставляет оболочку завершать работу немедленно, когда что-то возвращает ошибку (это часто используется в сценариях оболочки как отказоустойчивый механизм), и -xобеспечивает подробное выполнение сценариев, чтобы вы могли видеть, что происходит.

larsks
источник
10

Введите следующее на своей консоли, чтобы получить объяснение аргументов BASH:

bash -c "help set"

Чтобы ответить на ваш вопрос:

-e Выйти немедленно, если команда выходит с ненулевым статусом.

-x Команды печати и их аргументы по мере их выполнения.

Ричард Келлер
источник
2

Думаете ли вы о вещах, где вы делаете set -x set -e set -...? Бег help setдает тех.

becomingwisest
источник
1
Я думаю об используемых параметрах, таких как: #! / Bin / bash -xe
образный
0

Где лучше всего почитать документацию о том, какие параметры передаются в bash, такие как -x и -e? Я попробовал man 1 bash, но там, похоже, нет.

Прочтите раздел ОПЦИИ на странице руководства basj.

fpmurphy
источник
0

Я использую превосходное справочное руководство по Bash в качестве единой документации по языку Bash. Я нашел это более полезным, чем справочные страницы. Соответствующий вам раздел (описание ключей -e, -x можно найти здесь: set builtin

mzet
источник