CodeGym /Corsi /Docker SELF /Introduzione agli script bash: sintassi, variabili, coman...

Introduzione agli script bash: sintassi, variabili, comandi

Docker SELF
Livello 3 , Lezione 3
Disponibile

Introduzione agli script bash: sintassi, variabili, comandi

1. Cosa sono gli script bash?

Se ti sei mai chiesto: "Perché devo ripetere sempre gli stessi comandi ancora e ancora?", allora complimenti, sei pronto per gli script bash! Gli script bash sono un modo per automatizzare il lavoro su Linux scrivendo una sequenza di comandi in un unico file. Bash (Bourne Again Shell) non è solo una shell, è un coltellino svizzero per admin, programmatori e chiunque voglia far lavorare il sistema per sé.

Vantaggi degli script bash

  • Risparmio di tempo: Scrivi una volta, esegui otto volte.
  • Ripetibilità delle attività: Gli script vengono eseguiti nello stesso modo ogni volta (beh, se hai scritto tutto correttamente).
  • Automazione delle attività noiose: Crea comandi personalizzati per backup, monitoraggio delle risorse o gestione dei file.

2. Basi della creazione di script

Allora, iniziamo. Uno script Bash è semplicemente un file di testo con una serie di comandi. Ma per far capire a Linux che si tratta di uno script e non di appunti casuali dal tuo diario, bisogna seguire alcune regole.

Passo 1: Nome e formato del file

Gli script Bash di solito hanno l'estensione .sh (ma non è obbligatorio). Per esempio:

hello_world.sh
backup_script.sh

Passo 2: Header obbligatorio

Ogni script bash inizia con la riga:

#!/bin/bash

Questa riga si chiama shebang e comunica al sistema che per eseguire lo script bisogna usare l'interprete /bin/bash. Senza di essa, il sistema guarderà il tuo script, sospirerà tristemente e non farà nulla.

Passo 3: Uno script semplice

Creiamo ed eseguiamo uno script che stampa il testo "Ciao, mondo!". Alla fine, perché no?

  1. Creiamo un file:

    nano hello_world.sh
    
  2. Aggiungiamo le righe:

    #!/bin/bash
    echo "Ciao, mondo!"
  3. Rendiamo il file eseguibile:

    chmod +x hello_world.sh
    
  4. Eseguiamo lo script:

    ./hello_world.sh
    

Sullo schermo vedrai:

Ciao, mondo!

3. Lavorare con le variabili

Le variabili sono come uno storage per i dati nel tuo script. Rendono gli script flessibili e convenienti.

Creare variabili

Per dichiarare una variabile, usa il formato:

NOME_VARIABILE="valore"

Esempio:

NAME="Linux"
echo "Benvenuto su $NAME!"

Output:

Benvenuto su Linux!

Nota bene: non ci devono essere spazi tra il nome della variabile e il simbolo =. Se li metti, bash penserà che tu stia tentando di scrivere qualcosa di strano e ti darà un errore.

Variabili predefinite

Bash fornisce alcune variabili predefinite, ad esempio:

  • $USER — l'utente corrente.
  • $HOME — la directory home.
  • $PWD — la directory di lavoro corrente.

Prova questo script:

#!/bin/bash
echo "Ciao, $USER!"
echo "La tua directory home: $HOME"
echo "Stai lavorando qui: $PWD"

4. Ricevere dati dall'utente

A volte uno script deve ricevere dati dall'utente per funzionare. Per fare ciò si utilizza il comando read.

Esempio:

#!/bin/bash
echo "Come ti chiami?"
read NAME
echo "Ciao, $NAME!"

Avviando lo script, puoi inserire il tuo nome e lo script ti saluterà personalmente.


5. Uso dei comandi all'interno dello script

Bash permette di eseguire comandi come se li stessi digitando nel terminale.

Ad esempio:

#!/bin/bash
echo "Data e ora attuale:"
date

Il comando date mostrerà l'ora e la data attuali, ad esempio:

Data e ora attuale:
Mon Oct 30 12:34:56 UTC 2023

Salvataggio del risultato di un comando in una variabile

Puoi salvare l'output di un comando in una variabile utilizzando $(). È utile per l'elaborazione successiva dei dati.

Esempio:

#!/bin/bash
CURRENT_DATE=$(date)
echo "Adesso: $CURRENT_DATE"

6. Commenti negli script

Aggiungi sempre i commenti per capire, dopo un mese, cosa avevi scritto. Usa il simbolo # per i commenti:

#!/bin/bash
# Questo è uno script di benvenuto
echo "Benvenuto nel mondo di Bash!"

I commenti vengono ignorati dall'interprete e non influenzano l'esecuzione.


7. Esempio

Ora scriviamo uno script che verifica se un file esiste.

  1. Creiamo un file:

    nano file_checker.sh
    
  2. Aggiungiamo il codice:

    #!/bin/bash
    
    # Richiesta del nome del file
    echo "Inserisci il nome del file:"
    read FILE_NAME
    
    # Controlliamo se il file esiste
    if [ -f "$FILE_NAME" ]; then
        echo "Il file $FILE_NAME esiste."
    else
        echo "Il file $FILE_NAME non è stato trovato."
    fi
  3. Rendiamo il file eseguibile e lanciamolo:

    chmod +x file_checker.sh
    ./file_checker.sh
    
  4. Esempio di funzionamento dello script:

    Inserisci il nome del file:
    test.txt
    Il file test.txt esiste.
    

8. Errori Tipici

Lavorare con gli script bash può portare non solo gioia, ma a volte anche grandi grattacapi. Ecco alcuni degli errori più comuni:

  1. Shebang mancante.
    Senza la linea #!/bin/bash il tuo script potrebbe tentare di essere eseguito in un altro interprete, causando errori.

  2. Variabili non dichiarate.
    Se accidentalmente scrivi male il nome di una variabile, bash la interpreterà come vuota. Attiva la modalità di controllo rigoroso con set -u all'inizio dello script.

  3. Spazi attorno a =.
    Mai scrivere così: VARIABLE = "value". Questo causerà un errore.

  4. Problemi con i permessi.
    Se lo script non ha i permessi di esecuzione, aggiungili con chmod +x.

Compito Pratico

  1. Scrivi uno script che:

    • Chiede il nome dell'utente.
    • Mostra una frase di benvenuto.
    • Mostra la data e l'ora attuale.
  2. Scrivi uno script che:

    • Chiede all'utente il nome di un file.
    • Crea il file se non esiste, oppure avvisa che il file è già presente.

Ora sai le basi degli script bash! Resta da imparare ad aggiungere condizioni e cicli, ma questa è già la lezione successiva. Avanti, verso l'automazione del mondo!

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION