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.