Chiunque abbia avuto a che fare con i sistemi Linux, in un modo o nell'altro, si è certamente imbattuto in un terminale e qualche riga di codice. Il software che ci consente di eseguire quel codice è una shell, ed è in grado di interpretare i comandi permettendoci di gestire un intero sistema operativo. In questa guida scopriremo quali sono le basi del cosiddetto shell scripting, e per farlo ci baseremo sulla shell Linux più diffusa, cioè Bash.
Cos'è Bash
Bash è una "Unix shell", vale a dire un'interfaccia a linea (o riga) di comando che permette l'interazione con sistemi operativi derivati da Unix. È disponibile su gran parte dei sistemi operativi moderni di questo tipo, essendo la shell predefinita di molte distribuzioni GNU/Linux, nonchè di Mac OS X. La sua importanza è legata anche al fatto che è stata utilizzata su molti altri sistemi, non necessariamente derivati da Unix. È stata creata verso la fine degli anni '80 da Brian Fox, un programmatore impiegato nella Free Software Foundation. Lo scopo era quello di fornire un software libero alternativo alla Bourne shell, in precedenza una delle principali shell per i sistemi GNU/Linux (di fatto la parola "Bash" è l'acronimo di Bourne-Again Shell), incorporandone tutte le caratteristiche assieme ad alcune valide aggiunte, come l'aritmetica intera e la valutazione delle espressioni regolari.
Cos'è lo Shell Scripting
In aggiunta alla modalità interattiva, che permette all'utente di eseguire un comando alla volta e ricevere il risultato in tempo reale, Bash (così come molte altre shell) ha la capacità di eseguire interi script di comandi, conosciuti come "Bash shell script" ("Bash script", "shell script" o più semplicemente "script"). Uno script può contenere una semplice lista di comandi - o anche un singolo comando - così come funzioni, cicli, istruzioni condizionali, e tutti gli altri costrutti tipici della programmazione imperativa. In definitiva, un Bash shell script è un programma scritto nel linguaggio di programmazione Bash.
Lo Shell Scripting è l'arte di creare e modificare tali script.
I Bash script possono essere richiamati dalla modalità interattiva descritta in precedenza, oppure possono essere eseguiti da altre parti del sistema: uno script può essere richiamato ogni volta che il sistema si avvia, un altro ogni giorno alle 2:30 del mattino, un altro ancora ogni qualvolta un utente si autentica nel sistema.
Perché programmare la shell
I Bash script vengono comunemente usati per molte attività di amministrazione di sistema, come l'analisi dei log, il backup dei dischi, e così via. Sono anche molto usati come script di installazione di programmi complessi. Insomma, la conoscenza pratica dello Shell Scripting è essenziale per tutti coloro che desiderano diventare degli amministratori di sistema esperti, poiché questi permettono di risolvere problemi complessi pur richiedendo spesso istruzioni semplici. Per esempio, se si ha bisogno di richiamare due programmi esterni, è possibile creare uno script composto solamente da due linee; al tempo stesso, la shell ci mette a disposizione tutta la potenza e abilità decisionale di un linguaggio di programmazione completo.