Se um script /path/to/foocomeçar #!/bin/bash, a execução /path/to/foo arg1 arg2será equivalente à execução /bin/bash /path/too/foo arg1 arg2. Se a linha shebang for #!/bin/bash -ex, é equivalente à execução /bin/bash -ex /path/too/foo arg1 arg2. Esse recurso é gerenciado pelo kernel.
Observe que você pode portabilidade ter apenas um argumento na linha shebang: alguns departamentos (como o Linux) aceitam apenas um argumento, o que #!/bin/bash -e -xlevaria o bash a receber o único argumento de cinco caracteres -e -x(um erro de sintaxe) em vez de dois argumentos -ee -x.
Para o shell Bourne she shells derivados, como POSIX sh, bash, ksh e zsh:
-e significa que, se algum comando falhar (o que indica retornando um status diferente de zero), o script será encerrado imediatamente.
-x faz com que o shell imprima um rastreamento de execução.
Outros programas podem entender essas opções, mas com significados diferentes.