In uno shebang, è permesso uno spazio o più tra #!
e l'interprete?
Ad esempio #! /bin/bash
,. Sembra funzionare, ma alcuni hanno detto che non è corretto.
In uno shebang, è permesso uno spazio o più tra #!
e l'interprete?
Ad esempio #! /bin/bash
,. Sembra funzionare, ma alcuni hanno detto che non è corretto.
Risposte:
Sì, questo è permesso.
L'articolo di Wikipedia sullo shebang include un'e-mail del 1980 di Dennis Ritchie, quando stava introducendo il supporto del kernel per lo shebang (come parte di un pacchetto più ampio chiamato direttive per interpreti ) nella versione 8 di Unix (sottolineatura mia):
Il sistema è stato modificato in modo che se un file in esecuzione inizia con i caratteri magici
#!
, il resto della riga viene inteso come il nome di un interprete per il file eseguito. [...]Per approfittare di questa meravigliosa opportunità, metti
#! /bin/sh
sul margine sinistro della prima riga degli script della shell. Gli spazi vuoti dopo
!
sono OK.
Quindi spazi dopo lo shebang sono in circolazione da un po 'di tempo, e in effetti, l'esempio di Dennis Ritchie li sta usando.
Nota che le prime versioni di Unix avevano un limite di 16 caratteri in questa linea di interpreti, quindi non potevi avere una quantità arbitraria di spazi bianchi lì. Questa restrizione non si applica più ai kernel moderni.
Sì, gli spazi vuoti sono consentiti dopo il #!
. Si è persino pensato (erroneamente) che alcuni sistemi potrebbero richiederlo, ma è sempre stato opzionale.
Per ulteriori letture prova qui