Introduzione al Bash Scripting
Alex Scriven
Data Scientist
Come in altri linguaggi, puoi assegnare variabili con l’uguale.
var1="Moon"
Poi richiamale con la notazione $.
echo $var1
Moon
Dai al nome della variabile qualcosa di sensato:
firstname='Cynthia' lastname='Liu'echo "Hi there" $firstname $lastname
Hi there Cynthia Liu
Sono state restituite entrambe le variabili, ottimo!
Se ti dimentichi la notazione $, non è una variabile!
firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Bash non perdona gli spazi nella creazione delle variabili. Attento agli spazi!
var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
In Bash, virgolette diverse significano cose diverse, sia in creazione sia in stampa.
'testo') = la shell interpreta letteralmente"testo") = la shell interpreta alla lettera tranne $ e backtick L’ultimo modo crea una “shell nella shell”, utile per chiamare programmi da riga di comando. Si fa con i backtick.
Vediamo l’effetto dei diversi tipi di creazione di variabili
now_var='NOW'now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Il programma date è utile per mostrare i backtick
Output normale del programma:
date
Mon 2 Dec 2019 14:07:10 AEDT
Ora usiamo la shell nella shell:
rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.
date è stato chiamato, l’output catturato e inserito in linea con echo.
Abbiamo usato una shell dentro la shell!
Esiste un equivalente alla notazione con backtick:
rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.
Funzionano uguale, ma i backtick sono più vecchi. Le parentesi sono più usate oggi. (Vedi http://mywiki.wooledge.org/BashFAQ/082)
Introduzione al Bash Scripting