Если сценарий /path/to/fooначинается с #!/bin/bash, то выполнение /path/to/foo arg1 arg2эквивалентно выполнению /bin/bash /path/too/foo arg1 arg2. Если строка shebang есть #!/bin/bash -ex, это эквивалентно выполнению /bin/bash -ex /path/too/foo arg1 arg2. Эта функция управляется ядром.
Обратите внимание , что вы можете переносимо есть только один аргумент , на притон линии: некоторые Unices (например, Linux) только принимать один аргумент, так что #!/bin/bash -e -xприведет к Баш получающей один аргумент пять символов -e -x(синтаксическая ошибка) , а не два аргумента -eи -x.
Для оболочки Bourne shи производных оболочек, таких как POSIX sh, bash, ksh и zsh:
-e означает, что в случае сбоя какой-либо команды (на что указывает возвращаемое ненулевое состояние) сценарий немедленно завершается.
-x заставляет оболочку печатать трассировку выполнения.
Другие программы могут понимать эти опции, но с разными значениями.