Introduzione al Bash Scripting
Alex Scriven
Data Scientist
I numeri non sono integrati nativamente nella shell come nella maggior parte dei REPL (console) come R e Python
In Python o R puoi fare:
>>> 1 + 4
5
E otterrai subito il risultato!
I numeri non sono supportati nativamente:
(Nel terminale)
1 + 4
bash: 1: command not found
expr è un'utilità utile (come cat o grep)
Ora questo funziona (nel terminale):
expr 1 + 4
5
Ottimo!
expr non gestisce nativamente i decimali:
(Nel terminale)
expr 1 + 2.5
expr: not a decimal number: '2.5'
Niente paura! (C'è una soluzione)
bc (basic calculator) è un utile programma da riga di comando.
Puoi avviarlo nel terminale ed eseguire calcoli:

Usare bc senza aprire la calcolatrice è possibile con una pipe:
echo "5 + 7.5" | bc
12.5
bc ha anche l'argomento scale per le cifre decimali.
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
Nota l'uso di ; per separare le "righe" nel terminale
3.333
Possiamo assegnare variabili numeriche come quelle stringa:
dog_name='Roger' dog_age=6echo "My dog's name is $dog_name and he is $dog_age years old"
Attenzione: dog_age="6" funziona, ma lo rende una stringa!
My dog's name is Roger and he is 6 years old
Una variante della notazione tra parentesi singole per variabili numeriche:
expr 5 + 7
echo $((5 + 7))
12
12
Attenzione: questo metodo usa expr, non bc (niente decimali!)
Ricordi come abbiamo richiamato la shell nella lezione precedente?
Molto utile con variabili numeriche:
model1=87.65 model2=89.20echo "The total score is $(echo "$model1 + $model2" | bc)"echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Introduzione al Bash Scripting