Continuando ad affrontare rudimenti e concetti di base per approcciare allo scripting bash, è necessario soffermarsi su due concetti fondamentali: lo shabang e il comando con la sua appropriata sintassi.
Shabang
Lo shabang è una sequenza di caratteri iniziante con #! collocato esattamente all’inizio dello script per indicare al sistema quale interprete utilizzare per l’esecuzione. Precisamente, consiste in un magic number (una stringa di testo utilizzata per delle finalità specifiche) seguito dal pathname assoluto dell’interprete da utilizzare.
L’assenza dello shabang in uno script può portare spesso ad una esecuzione non corretta da parte del sistema. Questa casistica è ancora più frequente se nel file rappresentante lo script viene omessa l’estensione.
Un esempio di shabang sh:

Un esempio di shabang bash:

Il pathname assoluto consiste nel percorso (inteso come sequenza di cartelle) dove il programma interprete è sito all’interno del filesystem. Il percorso inizia dalla cartella “radice” /.
Comandi e sintassi
Un comando di una shell consiste in una funzione predefinita. Questa, infatti, è effettivamente un vero e proprio interprete di comandi: accetta i comandi ricevuti in input, li trasforma in istruzioni eseguibili dal computer e poi li riporta al kernel.
La shell scrive un prompt ed attende che venga inserito un comando. Infatti, la comparsa del prompt nella shell indica che sta attendendo l’inserimento di un comando.
Un esempio di prompt:

Molti prompt di shell, come riportato in questa immagine, hanno una scritta del tipo nomeutente@nomemacchina:∼/cammino$ rappresentante appunto, nome utente e nome della macchina separati da una chiocciola. Successivamente, separati da due punti, vi è il cammino (pathname assoluto) nel quale il prompt si trova (e nel quale lavorerà in caso gli venga inserito un comando).
La tilde (il simbolo ~) rappresenta il pathname assoluto della cartella home dell’utente (genericamente /home/nomeutente), presente in ogni sistema operativo Linux. Nel caso in cui si lavori in una cartella che, nel proprio pathname assoluto, non comprenda la home dell’utente, si avrà un pathname assoluto per esteso.
Un esempio di prompt con pathname assoluto:

Quindi per l’utilizzo del prompt, e dello scripting bash, soprattutto per lanciare in automatico operazioni, è fondamentale il concetto di comando. Ogni comando ha una sintassi ben precisa che consiste in:
nomecomando [argomenti opzionali] argomenti obbligatori
Per ogni comando, nei sistemi Linux, esiste una documentazione built-in chiamata man. Digitando da terminale man nomecomando si può accedere alla completa documentazione di quel comando. Nel man è possibile trovare la synopsis (o sintassi) di ogni comando, che assomiglierà al prototipo precedentemente presentato ma sarà specifica per ogni comando.
Nel prossimo articolo continueremo la nostra digressione generale sui comandi Linux e presenteremo qualche comando per la gestione del sistema al fine di poter creare piccoli script eseguibili anche in automatico all’avvio del sistema.
CONTATTI DELL’AUTORE
Leonardo Picchiami leonardo@orvietolinux.it
OrvietoLinux info@orvietolinux.it