Om du lämnar ut, då tanken kommer att misslyckas när man försöker exec () det. Vad som sedan händer beror på vilket skal du använder som inloggning skal. De flesta tankar antar att manuset är skrivet på deras eget språk. Så om du använder bash som inloggning skal och försöker köra ett Korn shell script som inte hade #! / usr / bin / ksh, bash sedan kommer att försöka köra det som ett bash-script. bash och ksh är något förenliga och detta skulle kunna fungera. Å andra sidan kan det misslyckas.
Anta att du använder ksh som inloggning skal och du kör Korn shell script utan att första raden. Saker verkar ok. Då du bestämmer dig för att försöka bash som inloggning skal. Plötsligt saker break.
Och ting kommer att vara särskilt grymma för alla som använder csh / tcsh som inloggning skal och kör skript utan att första raden. Dessa tankar inspektera skriptet att försöka gissa om de eller de gamla Bourne shell ska köra det. Det test som de använder är så dåligt att det kan bli slagna av en slumpgenerator. Och ingen använder fortfarande de gamla Bourne shell ändå.
Och ja, det är en slags standard. Flesta kärnor vet om det. Men jag tror inte att det är en officiell
POSIX standard.