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?
Creiamo un file:
nano hello_world.sh
Aggiungiamo le righe:
#!/bin/bash echo "Ciao, mondo!"
Rendiamo il file eseguibile:
chmod +x hello_world.sh
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.
Creiamo un file:
nano file_checker.sh
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
Rendiamo il file eseguibile e lanciamolo:
chmod +x file_checker.sh ./file_checker.sh
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:
Shebang mancante.
Senza la linea#!/bin/bash
il tuo script potrebbe tentare di essere eseguito in un altro interprete, causando errori.Variabili non dichiarate.
Se accidentalmente scrivi male il nome di una variabile, bash la interpreterà come vuota. Attiva la modalità di controllo rigoroso conset -u
all'inizio dello script.Spazi attorno a
=
.
Mai scrivere così:VARIABLE = "value"
. Questo causerà un errore.Problemi con i permessi.
Se lo script non ha i permessi di esecuzione, aggiungili conchmod +x
.
Compito Pratico
Scrivi uno script che:
- Chiede il nome dell'utente.
- Mostra una frase di benvenuto.
- Mostra la data e l'ora attuale.
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!
GO TO FULL VERSION