У меня есть некоторые сценарии удара, у меня есть установка, которую это главным образом использует
#!/bin/bash
но я регулярно сталкиваюсь с некоторыми, которые похожи
#!/bin/bash -e
#!/bin/bash -x
#!/bin/bash -ex
и так далее.
Кто-то может объяснить значение и преимущества этих опций хижины и относятся ли они к другим хижинам?
Если сценарий /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
заставляет оболочку печатать трассировку выполнения.Другие программы могут понять эти опции, но с различными значениями.