Orvieto Linux User Group | Promozione software libero a Orvieto

Introduzione allo scripting in Bash

Nella pianificazione della guide e degli articoli utili per ogni utente Linux, noi del LUG, abbiamo ritenuto opportuno prestare attenzione sull’utilizzo della shell e l’utilità dello scripting bash. Ecco perché, in questa serie di articoli, presenteremo i vari comandi per l’aggiornamento del sistema, gestione del filesystem, gestione dei processi, automatizzeremo poi i comandi tramite gli script, analizzeremo quindi i fondamenti dello scripting, vedremo come eseguirli e molto altri ancora! Cosa è una shell bash? La bash è probabilmente l’interprete di comandi più diffuso in ambiente UNIX; è presente su tutte le versioni unix e su tutte le versioni open source Gnu/Linux, FreeBSD, NetBSD, OpenBSD, ecc. La shell Bash (il cui acronimo è “Bourne Again Shell”) nasce come evoluzione della “Bourne Shell” (sh) e rappresenta un sovra-insieme di comandi della Bourne Shell. Ma cosa è una shell? Una shell dei comandi del sistema operativo, sono dei comandi eseguiti da ciascun utente del sistema operativo o possono essere chiamati da altri programmi. La shell dei comandi è stata principalmente progettata per consentire l’interazione fra utente e sistema operativo. Nell’atto pratico è quindi un programma consistente in una finestra (chiamata anche terminale) che permette di interagire con il sistema operativo. Un esempio di terminale è il seguente: Il tipo di interazione fra sistema operativo e utente tramite shell viene chiamata modalità alfanumerica o in gergo “a linea di comando”. In alternativa ad una shell che opera in modalità alfanumerica l’interazione avviene tramite una interfaccia grafica chiamata GUI (Graphical User Interface) che consente all’utente di interagire con il sistema tramite delle componenti grafiche che contribuiscono a semplificarne e a velocizzarne l’utilizzo. Scripting bash La shell bash, oltre che un interprete di comandi è in realtà un vero e proprio linguaggio di programmazione che consente di creare dei programmi chiamati script. Lo scripting bash consiste quindi nella creazione di programmi per la shell bash: dall’automatizzazione di singoli comandi (perfino all’avvio del sistema) alla manipolazione del sistema stesso. Un piccolo script di esempio che aggiorna il sistema Ubuntu: Abbiamo quindi fatto un piccola introduzione concettuale su ciò di cui tratteremo. Nel prossimo articoli introdurremo la differenza fra bash (Bourne Again Shell) e sh (Bourne Shell) in termini di scripting, alcuni fondamenti dello scripting e come eseguire uno script. CONTATTI DELL’AUTORE Leonardo Picchiami leonardo@orvietolinux.it OrvietoLinux info@orvietolinux.it  

Scripting Bash #1 – Creazione ed esecutione di script

Dopo il primo articolo di introduzione generale, presentiamo una serie di articoli contenenti i rudimenti per un approccio con lo scripting bash. Per avere una visione di base generale, è necessario conoscere innanzitutto la differenza fra le varie tipologie di script, come creare ed eseguire uno script.     Script sh e script bash   Quando si parla di script, si parla di un particolare programma scritto in una classe di linguaggi di programmazione chiamati linguaggi di scripting. Dato questo insieme di script, ne analizzeremo un suo sottoinsieme: gli script di shell. Lo script di shell identifica uno script per una determinata shell di un sistema operativo, perciò non interpretabile (ed eseguibile) da altre shell di sistema simili.   La shell bash, esegue ed interpreta gli script bash: nome_file.bash. Riferendoci a ciò che è stato detto in precedenza, altri tipi di shell non possono quindi interpretare questo specifico script.   Esiste inoltre un altro tipo di script degno di nota, chiamato script sh: nome_file.sh. Lo script sh può essere eseguito su qualsiasi tipo di shell, sia shell bash sia shell non bash. (È importante a questo punto ricordarsi la distinzione presente nel precedente articolo fra “Bourne Again Shell” e “Bourne Shell”).     Creare ed eseguire uno script   Come primo passo, è essenziale capire come creare ed eseguire uno script in un determinato ambiente. Per creare uno script si può eseguire, da prompt, il comando:   Per eseguire uno script, in una shell bash, abbiamo quattro differenti modalità:   1. ./nome_file.estensione. Con l’esecuzione di questo comando viene invocata una sotto-shell che esegue uno dopo l’altro presente nello script in questione. Per utilizzare questa sintassi è necessario che il file script abbia i permessi di esecuzione (la maschera di creazione dei file di default non assegna i permessi di esecuzione). Per eseguire lo script tramite questa modalità, usualmente si eseguono i seguenti comandi:     2. bash nome_file.estensione. Anche in questo caso, viene invocata una sotto-shell che esegue sequenzialmente i comandi presenti nello script:   3. source nome_file.estensione. Con questo comando, al contrario, non viene creata una sotto-shell ma l’esecuzione avviene nella shell corrente:   4. nome_file.estensione. Anche in questo caso, come nel precedente, non viene creata una sotto-shell ma lo script viene eseguito nella shell corrente: La puntualizzazione fra le modalità che eseguono lo script nella shell corrente o in una sotto-shell è fondamentale per l’utilizzo delle proprietà locali, come ad esempio variabili locali o funzioni, di una determinata shell nello script, ma approfondiremo tutto nei prossimi articoli.   In questo secondo articolo, abbiamo prolungato la parte introduttiva con una piccola digressione sullo scripting, sulla creazione e sulle varie esecuzioni di uno script. Nel prossimo articolo introdurremo il concetto di shabang spiegando la sua importanza e il concetto di comando con la sua sintassi. CONTATTI DELL’AUTORE Leonardo Picchiami leonardo@orvietolinux.it OrvietoLinux info@orvietolinux.it

Scripting Bash #2 – Shabang e comandi

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.