Lo scripting Bash è uno dei modi più popolari e accessibili per programmare il tuo computer Linux. Questi semplici esempi di script ti aiuteranno a comprendere il processo e ti introdurranno alle basi della programmazione Bash.
Sommario:
1. Come stampare Hello World in Bash
L’esempio Hello World è un ottimo modo per apprendere qualsiasi linguaggio di programmazione e Bash non fa eccezione.
Ecco come stampare “Hello World” usando Bash:
#!/bin/bash
Il comando Shebang (#!/bin/bash) è essenziale poiché la shell lo utilizza per decidere come eseguire lo script. In questo caso utilizza l’interprete Bash.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Creare una directory leggendo l’input
Dai tuoi script, puoi eseguire qualsiasi programma che potresti normalmente eseguire sulla riga di comando. Ad esempio, puoi creare una nuova directory dal tuo script utilizzando il comando mkdir.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Creare una directory utilizzando gli argomenti della riga di comando
In alternativa alla lettura interattiva dell’input, la maggior parte dei comandi Linux supporta gli argomenti. Puoi fornire un argomento quando esegui un programma, per controllarne il comportamento.
All’interno del tuo script, puoi utilizzare $1 per fare riferimento a una variabile speciale che contiene il valore del primo argomento. $2 si riferirà al secondo argomento e così via.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Forse ti starai chiedendo cosa succede se esegui lo script senza fornire alcun argomento. Provalo e vedi; dovresti ricevere un messaggio di errore che inizia “usage: mkdir”:
Senza argomenti della riga di comando, il valore di $1 sarà vuoto. Quando il tuo script chiama mkdir, non gli passerà un argomento e il comando mkdir restituirà quell’errore. Per evitare ciò, puoi verificare tu stesso la condizione e presentare un errore più amichevole:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Quando esegui questa nuova versione dello script, riceverai un messaggio se dimentichi di includere un argomento:
4. Elimina un file utilizzando una funzione Bash
Se ti ritrovi a ripetere lo stesso codice, considera di racchiuderlo in una funzione. Puoi quindi chiamare quella funzione ogni volta che ne hai bisogno.
Ecco un esempio di una funzione che elimina un determinato file.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Puoi quindi chiamare la funzione e passarle il nome di un file da eliminare:
del_file test.txt
Quando chiami una funzione, imposterà lo speciale $? valore con lo stato di uscita dell’ultimo comando eseguito. Lo stato di uscita è utile per il controllo degli errori; in questo esempio, puoi verificare se il comando rm ha avuto esito positivo:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Creare una calcolatrice di base per i calcoli aritmetici
Questo esempio finale dimostra una calcolatrice molto semplice. Quando lo esegui, inserirai due valori, quindi sceglierai un’operazione aritmetica da eseguire su di essi.
Ecco il codice per calc.sh:
#!/bin/bash
echo "Enter first number: "
read aecho "Enter second number: "
read b
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice
case $choice in
1)
result=`echo $a + $b | bc`
;;2)
result=`echo $a - $b | bc`
;;3)
result=`echo $a \* $b | bc`
;;4)
result=`echo "scale=2; $a / $b" | bc`
;;
esacecho "Result: $result"
Notare l’uso di case … esac che è l’equivalente di Bash dell’istruzione switch di altri linguaggi. Ti consente di testare un valore, in questo caso la variabile choice, rispetto a diversi valori fissi ed eseguire il codice associato.
Questo script utilizza il comando bc per eseguire ogni calcolo.