Hvis du la den ut, så skallet mislykkes når den forsøker å exec () det. Hva som skjer videre avhenger av hvilket skall du bruker som innlogging skall. De fleste skjell vil anta at manuskriptet er skrevet på deres eget språk. Så hvis du bruker bash som påloggingsinformasjon skall og prøver å kjøre et Korn shell script som ikke har #! / usr / bin / ksh, så bash vil prøve å kjøre det som et bash-skript. bash og ksh er noe kompatible og dette kan fungere. På den annen side, kan det mislykkes.
Anta at du bruker ksh som påloggingsinformasjon skallet, og du kjører Korn Shell skript uten at første linje. Ting virker ok. Så du bestemmer deg for å prøve bash som påloggingsinformasjon skall. Plutselig ting pause.
Og ting vil være særlig stygg ut for alle som bruker csh / tcsh som deres logikk skall og kjører skript uten at første linje. Disse skjellene inspisere skriptet til å prøve og gjett om de eller den gamle Bourne shell skal kjøre den. Testen de ansette er så dårlig at det kan bli slått av en tilfeldig nummer generator. Og ingen bruker fortsatt den gamle Bourne shell uansett.
Og ja, det er en slags standard. De fleste kjerner vite om det. Men jeg tror ikke det er et offisielt
POSIX standard.