Shebang: che cos’è e come funziona? In questo articolo affronteremo assieme l’utilizzo dello shebang e quindi capirai non solo che cos’è, ma anche come funziona.
Se stai realizzando degli script bash, categoria che è presente nel mio blog se volessi approfondire, ti sarai sicuramente imbattuto in qualcosa come:
#!/usr/bin/env
Non è ostrogoto, ma è proprio quello che ti ha portato a leggere questo articolo: quello è uno shebang e sicuramente ti starai chiedendo che cos’è realmente e come funziona. Tranquillo, ci arriviamo: ma prima le presentazioni!
Mi chiamo Lorenzo Neri e sono un informatico e ho realizzato il blog che stai leggendo in questo preciso istante per aiutare persone come te a padroneggiare l’arte del nuovo millennio, l’informatica.
Tutti gli articoli che leggerai, incluso questo, sono frutto di un problema a cui ho cercato di creare una soluzione nel corso della mia carriera lavorativa: ogni articolo infatti, è la soluzione al problema. Ciò detto, incominciamo.
Shebang: che cos’è?
Gli shebang, sono utilizzati negli script bash come dicevo prima, per far sì che si possa specificare l’interprete con cui eseguire lo script stesso, questo per i sistemi UNIX e dunque MacOS e Linux ai giorni nostri.
Per dirla in maniera meno tecnichese, lo shebang è la prima linea di uno script che ti permette di decidere quale interprete utilizzare per eseguire il tuo stesso script bash.
Fino a questo punto nient’altro da aggiungere, ma per capirne la struttura e il funzionamento dobbiamo andare oltre.
Come funziona shebang all’interno di uno script bash
Per essere più precisi, dovremmo dire all’inizio di uno script bash. Lo shebang è caratterizzato dal #! all’inizio della linea stessa che costituisce lo shebang a tutti gli effetti.
Dunque lo shebang È EFFETTIVAMENTE il cancelletto seguito dal punto esclamativo.
E poi?
E poi è necessario aggiungere il path dell’interprete che dev’essere scritto per esteso a seguito dello shebang effettivo.
Ma facciamo degli esempi, che penso sia meglio!
Shebang: come funziona la sintassi
La sintassi, volendo fare degli esempi, è la seguente:
#!/percorso/path/interprete [argomenti]
Altrimenti, possiamo usare gli argomenti, come segue:
#!/percorso/path/interprete -arg1 -arg2
Giusto per curiosità tua, sappi che lo shebang viene usato anche per Python e, in certi casi, anche per Perl.
Giunti a questo punto, dopo aver capito che cos’è lo shebang e come funziona, parliamo un attimo dei suoi benefici.
Shebang: quali sono i suoi benefici
I benefici sono un bel po’ nel suo utilizzo.
Il primo in assoluto, è quello di rendere gli script quanto più simili a dei file eseguibili, questo poiché si specifica nero su bianco (o altre combo di colori a seconda del tuo terminale) come eseguire lo script stesso. Di fatto il secondo punto è che non possono essere usati tramite “exec” ed è l’unico modo per renderli quanto più vicini al concetto di file eseguibile.
Il terzo, è legato al fatto che, se esegui uno script bash dotato di shebang, se eseguissi il comando “ps”, apparirebbe il vero nome dello script anziché un semplice “sh” o “bash”.
Il quarto è legato al fatto che gli script possano essere associati ad uno user ID.
Gli ultimi due aspetti, sono legati al fatto che puoi usare shell alternative per poterli eseguire a prescindere da come venga interpretato il file, a conclusione ti permette di usare altri interpreti in modo molto più efficacemente a seconda del codice che compone il tuo script.