Come avviare uno script con un doppio click sul file .sh

Questo post descrive il procedimento da adottare per poter avviare uno script -in ambiente grafico di Linux Ubuntu- facendo doppio click sul file .sh che lo contiene.

Le Shell

In ambito informatico, la shell è l’interfaccia testuale che permette di eseguire i comandi del sistema operativo. In ambiente Windows la shell è conosciuta come “prompt dei comandi” e viene avviata con il programma cmd.exe. Negli  ambienti basati su UNIX (o Unix-based: Unix, Linux, macOS) , la shell viene avviata con il programma “terminale”. La shell più diffusa in questi ambienti è la Bash.

La shell di Ubuntu
Fig. 1 – Bash Shell di Ubuntu, la distribuzione più diffusa di Linux

Lo shell scripting

In tutte le shell (più diffuse) è possibile eseguire degli script, ovvero delle sequenze di comandi salvate all’interno di file di testo: nella riga di comando della shell, invece che inserire direttamente un comando, si può richiamare il file contenente lo script ed eseguire in questo modo la sequenza di comandi in esso contenuti.

In ambiente Windows è possibile, ad esempio, inserire i comandi in un file .bat e poi richiamare il file inserendone il nome nella riga di comando.

In ambiente Unix-based, quando si fa riferimento ai file di testo che contengono comandi del sistema operativo, si utilizzano -praticamente come sinonimi- i termini: Bash shell script, Bash script, shell script, o anche solo script. Questi file sono caratterizzati dall’estensione .sh e vengono eseguiti richiamandone il nome nella riga di comando della shell. Poiché è necessario indicare non solo il nome dello script, ma anche l’intero percorso della directory che lo contiene, è prassi normale il posizionarsi su tale directory e poi premettere “./” (ovvero “la directory corrente”) al nome file.

Avviare uno script tramite doppio click sul file .sh

Se si utilizza l’ambiente grafico di Ubuntu, può risultare comodo avviare uno script facendo doppio click sul file .sh che lo contiene, anziché aprire un terminale, posizionarsi sulla directory dello script e poi inserirne il nome nella linea di comando.
Vediamo come fare:

1. Assicurarsi che il file di testo sia eseguibile

    • aprire la finestra delle proprietà del file facendo click sul file col tasto destro del mouse e poi scegliendo la voce “proprietà” (in alternativa, selezionare il file con un click e poi premere la combinazione di tasti “control+i”);
    • selezionare il tab “Permessi”;
    • mettere il segno di spunta sull’opzione “Esecuzione”;
    • chiudere la finestra delle proprietà.
La finestra delle proprietà del file
Fig. 2 – Finestra delle proprietà del file selezionato

2. Verificare come il file manager tratta i file di testo eseguibili

  • aprire il programma di gestione dei file Nautilus (“File”);
  • nella barra superiore della finestra principale, cliccare col destro sulla voce “File”, quindi scegliere l’opzione “Preferenze”;

    Apertura delle preferenze di Nautilus
    Fig.3 – Apertura delle preferenze di Nautilus (“File”)
  • il sistema visualizza la finestra delle preferenze; cliccare sul tab “Comportamento”, quindi selezionare l’opzione “Chiedere cosa fare” della voce “File di testo eseguibili”.

    Tab Comportamento della finestra Preferenze di Nautilus
    Fig. 4 – Tab Comportamento delle Preferenze di Nautilus

3. Avviare lo script

  • A questo punto, se si fa doppio click sul file .sh che contiene lo script, il sistema aprirà una finestra per chiedere all’utente come comportarsi con il file.

    Box di richiesta a seguito del doppio click su un file di testo eseguibile
    Fig. 5 – Box di richiesta a seguito del doppio click su un file di testo eseguibile
  • Cliccare sull’opzione “Esegui nel terminale”. Il sistema aprirà una shell ed eseguirà lo script.

Risorse ulteriori

Altre utili informazioni su come eseguire uno script sono presenti in questo articolo.