Quando si tenta di eseguire un programma in unix (uno con il bit di bit di esecuzione), il sistema operativo esaminerà i primi pochi byte del file. Questi formano il cosiddetto "numero magico", che può essere usato per decidere il formato del programma e come eseguirlo.
#!
corrisponde al numero magico 0x2321 (cercare in un tavolo ascii). Quando il sistema vede quel numero magico, sa che si tratta di uno script di testo e legge fino al prossimo \n
(c'è un limite, ma mi sfugge atm). Avendo identificato l'interprete (il primo argomento dopo lo shebang) chiamerà l'interprete.
Altri file hanno anche numeri magici. Prova a guardare un file bitmap (.BMP) tramite less
e vedrai che i primi due caratteri sono BM
. Questo numero magico indica che il file è effettivamente un bitmap.
fonte
2011-09-10 15:59:50
[Shebang] (http://en.wikipedia.org/wiki/Shebang_%28Unix%29) – drootang
buona spiegazione su Ask Ubuntu: http://askubuntu.com/questions/141928/what-is- difference-between-bin-sh-and-bin-bash –
Possibile duplicato di [Perché è necessario inserire #!/bin/bash all'inizio di un file di script?] (http://stackoverflow.com/questions/8967902/why-do-you-need-to-put-bin-bash-at-the-beginning-of-a-script-file) –