Als je laat het uit, dan is de shell zal mislukken als hij probeert te exec () is. Wat er dan gebeurt hangt af van welke shell je gebruikt als je login-shell. De meeste schelpen zullen aannemen dat het script is geschreven in hun eigen taal. Dus als u gebruik maakt van bash als uw login-shell en probeer een Korn shell script dat niet hebt uitgevoerd de #! / usr / bin / ksh, bash dan zal proberen om het uit te voeren als een bash-script. bash en ksh enigszins verenigbaar zijn en dit zou kunnen werken. Aan de andere kant kan het mislukken.
Stel dat u ksh als uw login-shell en je bent Korn shell-scripts uitvoeren zonder dat die eerste lijn. Dingen lijken ok. Dan moet je beslissen om bash proberen als je login-shell. Plotseling dingen breken.
En alles zal in het bijzonder grimmig worden voor iedereen die gebruik maakt csh / tcsh als hun login shell scripts en loopt zonder dat die eerste lijn. Deze schelpen inspecteren het script om te proberen te raden of zij of de oude Bourne shell moet draaien. De test die zij in dienst is zo slecht dat het kan worden geslagen door een random number generator. En niemand gebruikt nog steeds de oude Bourne Shell anyway.
En ja, het is een soort standaard. De meeste kernels weten. Maar ik geloof niet dat een officiële
POSIX standaard.