Guida avanzata di scripting Bash: Un'approfondita esplorazione dell'arte dello scripting di shell | ||
---|---|---|
Indietro | Avanti |
L'espansione aritmetica fornisce un potente strumento per l'esecuzione delle operazioni matematiche (sugli interi) negli script. È relativamente semplice trasformare una stringa in un'espressione numerica usando i costrutti apici inversi, doppie parentesi o let.
z=`expr $z + 3` # Il comando 'expr' esegue l'espansione. |
L'uso degli apici inversi (apostrofi inversi) nell'espansione aritmetica è stato sostituito dalle doppie parentesi -- ((...)) e $((...)) -- e anche dal convenientissimo costrutto let.
z=$(($z+3)) z=$((z+3)) # Corretto anche così. # All'interno delle doppie #+ parentesi la dereferenziazione #+ del parametro è opzionale. # $((ESPRESSIONE)) è un'espansione aritmetica. # Non deve essere confusa con #+ la sostituzione di comando. # Nelle doppie parentesi è possibile effettuare operazioni senza assegnamento. n=0 echo "n = $n" # n = 0 (( n += 1 )) # Incremento. # (( $n += 1 )) non è corretto! echo "n = $n" # n = 1 let z=z+3 let "z += 3" # Il quoting consente l'uso degli spazi nell'assegnamento #+ di variabile. # L'operatore 'let' in realtà esegue una valutazione aritmetica, #+ piuttosto che un'espansione. |
Esempi di espansione aritmetica negli script: