Si un script /path/to/foocomienza con #!/bin/bash, entonces ejecutar /path/to/foo arg1 arg2es equivalente a ejecutar /bin/bash /path/too/foo arg1 arg2. Si la línea shebang es #!/bin/bash -ex, es equivalente a ejecutar /bin/bash -ex /path/too/foo arg1 arg2. Esta característica es administrada por el núcleo.
Tenga en cuenta que solo puede tener un argumento de manera portátil en la línea shebang: algunos unices (como Linux) solo aceptan un argumento, por lo que #!/bin/bash -e -xbash recibiría el argumento de cinco caracteres -e -x(un error de sintaxis) en lugar de dos argumentos -ey -x.
Para el shell Bourne shy los shells derivados como POSIX sh, bash, ksh y zsh:
-e significa que si algún comando falla (lo que indica al devolver un estado distinto de cero), el script finalizará de inmediato.
-x hace que el shell imprima un seguimiento de ejecución.
Otros programas pueden entender estas opciones pero con diferentes significados.