Script Bash



Uno Script Bash è un file di testo, contenente dei comandi che viene salvato con estensione .sh. Lanciando lo script, i comandi in esso contenuti verranno, automaticamente, eseguiti da Fedora. Uno script può essere semplice ma anche molto complesso, dipende da quello che intendiamo realizzare. Vedremo cosa è uno script, come crearlo, modificarlo e lanciarlo ... 

Il Terminale


In Fedora molte azioni le compiamo tramite finestre grafiche. In effetti per compiere tali azioni possiamo usare anche il Terminale e molti lo preferiscono.

Il Terminale, chiamato anche console, shell, command line, linea di comando, ecc..., e' un'applicazione che permette di interagire direttamente col Sistema Operativo (come la finestra DOS di Windows). Si tratta  di uno strumento potente disponibile in Linux col quale possiamo fare tantissimo grazie a dei comandi: installare e disinstallare software; creare, spostare o cancellare cartelle e file; manipolare file di configurazione; tantissime altre azioni, dalle più semplici alle più complesse.

Nel Terminale è possibile digitare o incollare una riga di comando per volta, anche se breve e semplice o lunga e complessa.


Lo Script Bash


Se apriamo un qualunque editor di testi, ad esempio KWrite e vi incolliamo  i comandi utilizzati per il Terminale e poi lo salviamo (dopo avere rispettato delle semplicissime regole), otterremo uno Script che è, quindi, un file contenente dei comandi. Lanciando lo Script verranno eseguiti automaticamente da Fedora, tutti i comandi che contiene. In questo modo non avremo più la limitazione del Terminale che imponeva una sola riga di comando per volta. Uno Script può essere semplice ma anche molto complesso, dipende da quello che intendiamo realizzare. Mi limiterò alla realizzazione di semplici Script che possono, comunque compiere importanti e lunghe azioni. 


Creare uno Script Bash


Da Fedora apriamo l'editor di testi KWrite, in esso incolliamo la prima riga:

#!/bin/bash

che è indispensabile in quanto indica al sistema la presenza di istruzioni nel file che vanno elaborate dalla shell (Terminale).

Seguiranno le righe con tutti i comandi ed in ultimo è opportuno chiudere lo script col comando:

exit

che è la maniera corretta per uscire da uno script.

#!/bin/bash
# Questo script installa le due applicazioni audacity e apostrophe
sudo dnf install audacity -y
sudo dnf install apostrophe -y
exit

Ultimata la scrittura ci basta salvare il file con un nome qualsiasi e con l'estensione .sh, ad esempio: installazione.sh

Vediamo cosa abbiamo fatto:

#!/bin/bash

Si tratta della riga di apertura dello Script che è obbligatoria.

# Questo script installa le due applicazioni audacity e apostrophe

Questa è una riga di commento, ossia una spiegazione di quanto farà lo script. Qualunque riga (tranne la prima) se scritta dopo il simbolo # non ha nessuna rilevanza e non costituirà un comando. Possiamo anche non inserire commenti, ma essi servono a meglio capire a cosa serve lo script stesso.

sudo dnf install audacity -y

Si tratta del comando che installa il software audacity (editor audio). Il comando, dato da terminale, sarebbe:

sudo dnf install audacity

noi abbiamo aggiunto -y per evitare la conferma. Spieghiamo meglio. Le tre righe che iniziano con sudo apt-get install installano delle applicazioni, se non inseriamo (in coda) -y, per ogni installazione ci verrà chiesta la conferma. Se rispondiamo si (y) l'applicazione verrà installata, altrimenti verrà saltata. Invece, inserendo (in coda)  -y l'applicazione verrà installata senza alcuna conferma. Entrambe le opzioni possono essere utili. Nell'esempio le tre applicazioni verranno installate automaticamente senza la richiesta di nessuna conferma conferma.

Altra cosa da dire è che le righe vuote non vengono considerate dallo script. Esse normalmente si inseriscono, tra una riga di comando e l'altra, solo per facilitare la lettura dello script. Infatti, righe di comando troppo fitte darebbero fastidio nella lettura. Le righe vuote hanno, quindi, il compito di facilitare la comprensione dello script da parte delle persone, come accade per le righe di commento, ma, entrambe, non hanno nessuna importanza ai fini dell'azione dello script.

A questo punto abbiamo lo script completo e salvato con un nome e con l'estensione .sh (nell'esempio lo abbiamo chiamato installazione.sh), ma per lanciarlo dobbiamo renderlo eseguibile.


Lanciare uno Script Bash


Facendo doppio click sullo script (installazione.sh), lo stesso verrà aperto con KWrite (editor di testi) e ne verrà, semplicemente mostrato il contenuto. Questo in quanto lo script non è stato reso eseguibile. Per renderlo eseguibile, bisogna fate click col destro del mouse sullo script (file .sh), si aprirà il seguente menù contestuale:


Quindi scegliete Proprietà. Si apre la seguente finestra:


 Click sulla linguella Permessi e basta inserire una spunta nel quadratino  relativo all'opzione Eseguibile. La finestra sarà la seguente:


Terminare con un click su OK.

Adesso lo Script è stato reso eseguibile. Se facciamo click col destro del mouse sullo script (file .sh), si aprirà il seguente menù contestuale:


Selezionare la voce "Azioni" e sul menù a tendina che si apre selezionare "Esegui in Konsole". Si aprira la finestra della Konsole (il terminale in KDE):


Digitare ora la password, non la vedremo visualizzata a video mentre la digitiamo ma il terminale la sta prendendo, seguita dal tasto INVIO. Lo script sarà lanciato ed attuerà tutti i comandi in esso contenuti.

Alla fine dell'esecuzione dell'ultimo comando dello script il terminale ci indicherà che ha fatto, come nella seguente finestra:


Possiamo ora chiudere il terminale.


Modificare uno Script Bash


Dopo averlo reso eseguibile sefacciamo doppio clic sullo script si aprirà la seguente finestra:


Se facciamo click sul bottone Apri, lo script verrà aperto a mezzo dell'editor di testi KWrite. Possiamo quindi modificarlo a nostro piacimento (aggiungere, eliminare righe o quello che vogliamo) ed alla fine fare click sul l'icona Salva. In questo modo, otterremo il nuovo script modificato.


Piccoli consigli


  • Una volta lanciato lo script si aprirà il terminale. Se tra i comandi contenuti nello script si trova anche sudo, vi verrà chiesta la password. Il terminale di Ubuntu, per una questione di sicurezza, quando si digita la password, non fa vedere nulla. Questo per evitare che qualcuno che si trova vicino, riesca a capire, se non altro, di quante cifre è composta la password. Quindi quando il terminale richiede la password, anche se sembra che non succede nulla, in effetti sta succedendo tutto. Ossia anche se apparentemente sembra che la password non venga recepita, in effetti Ubuntu la sta prendendo perfettamente. Pertanto dovete solo digitare tutta la password completa, con attenzione (anche se non vedete nulla) e poi dare invio da tastiera. Il terminale accetterà la password, se correttamente digitata e procederà con l'esecuzione dei comandi.

  • Prima di lanciare gli script, è consigliabile chiudere tutte le applicazioni aperte (programmi).

  • Durante l'esecuzione dello script , è consigliabile, non aprire altre applicazioni e non eseguire altri lavori.

  • Durante l'esecuzione dello script potrebbe esservi chiesta una conferma. Rispondete con una s (esse) e date Invio da tastiera.

  • Aspettate pazientemente la fine dell'esecuzione dello script che potrebbe richiedere anche molto tempo, specialmente se si installano applicazioni (numerose e/o grosse). Appena lo script avrà ultimato la sua azione, la finestra del terminale si chiuderà automaticamente.

  • Se uno script creato per installare dei pacchetti (programmi) viene interrotto è possibile lancialo nuovamente. Rilanciando lo script non verranno reinstallati i pacchetti già precedentemente installati, ma solamente quelli che non lo erano stati.