Якщо сценарій /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. Цією функцією керує ядро.
Зауважте, що ви можете перенести лише один аргумент у рядку shebang: деякі уніці (наприклад, Linux) приймають лише один аргумент, так що #!/bin/bash -e -xце призведе до того, що баш отримає єдиний аргумент п’яти символів -e -x(синтаксична помилка), а не два аргументи -eта -x.
Для оболонки Борна shта похідних оболонок, таких як POSIX sh, bash, ksh та zsh:
-e означає, що якщо будь-яка команда виходить з ладу (що вона вказує, повертаючи ненульовий статус), сценарій негайно припиняється.
-x викликає оболонку для друку сліду виконання.
Інші програми можуть розуміти ці параметри, але з різним значенням.