Хижина Bash для макетов?

У меня есть некоторые сценарии удара, у меня есть установка, которую это главным образом использует

#!/bin/bash

но я регулярно сталкиваюсь с некоторыми, которые похожи

#!/bin/bash -e
#!/bin/bash -x
#!/bin/bash -ex

и так далее.

Кто-то может объяснить значение и преимущества этих опций хижины и относятся ли они к другим хижинам?

36
задан 05.10.2010, 00:09

2 ответа

Если сценарий /path/to/foo начинается #!/bin/bash, затем выполнение /path/to/foo arg1 arg2 эквивалентно выполнению /bin/bash /path/too/foo arg1 arg2. Если строка хижины #!/bin/bash -ex, это эквивалентно выполнению /bin/bash -ex /path/too/foo arg1 arg2. Этой функцией управляет ядро.

Обратите внимание, что у Вас может портативно быть только один аргумент на строке хижины: некоторые нельды (такие как Linux) только принимают один аргумент, так, чтобы #!/bin/bash -e -x вел бы для избиения получения единственного аргумента с пятью символами -e -x (синтаксическая ошибка), а не два аргумента -e и -x.

Для Оболочки Bourne sh и полученные оболочки, такие как POSIX sh, удар, ksh, и zsh:

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

Другие программы могут понять эти опции, но с различными значениями.

41
ответ дан 07.12.2019, 08:58

Они - опции, переданные bash посмотрите help set для большего количества информации, в этом случае:

-x  Print commands and their arguments as they are executed.
-e  Exit immediately if a command exits with a non-zero status.
24
ответ дан 07.12.2019, 08:58

Теги

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