Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

(( )) - Progettato per numeri interi

Oltre a un [[]] comando composto, bash fornisce anche il (( )) comando composto, utile per operare su interi. Supporta una serie completa di valutazioni aritmetiche, un argomento che tratteremo completamente nel capitolo 34.

(( )) è usato per eseguire test di verità aritmetici. Un test di verità aritmetica risulta vero se il risultato della valutazione aritmetica è diverso da zero.



[io@linuxbox~]$ se ((1)); then echo "È vero."; fi

È vero.

[io@linuxbox~]$ se ((0)); then echo "È vero."; fi

[io@linuxbox~]$

[io@linuxbox~]$ se ((1)); then echo "È vero."; fi

È vero.

[io@linuxbox~]$ se ((0)); then echo "È vero."; fi

[io@linuxbox~]$


utilizzando (( )), possiamo semplificare leggermente il test-intero2 sceneggiatura in questo modo:


#! / Bin / bash


# test-integer2a: valuta il valore di un intero.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; allora se ((INT == 0)); poi

echo "INT è zero."

altro

if ((INT < 0)); poi

echo "INT è negativo."

altro

echo "INT è positivo."

fi

if (( ((INT % 2)) == 0)); poi

echo "INT è pari."

altro

echo "INT è dispari."

fi

#! / Bin / bash


# test-integer2a: valuta il valore di un intero.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; allora se ((INT == 0)); poi

echo "INT è zero."

altro

if ((INT < 0)); poi

echo "INT è negativo."

altro

echo "INT è positivo."

fi

if (( ((INT % 2)) == 0)); poi

echo "INT è pari."

altro

echo "INT è dispari."

fi



echo "INT non è un numero intero." >&2 uscita 1

fi


echo "INT non è un numero intero." >&2 uscita 1

fi

Nota che usiamo i segni di minore e maggiore di e che == viene utilizzato per verificare l'equivalenza. Questa è una sintassi dall'aspetto più naturale per lavorare con i numeri interi. Nota anche che, poiché il comando composto (( )) fa parte della sintassi della shell più che di un normale comando, si occupa solo di interi, è in grado di riconoscere le variabili per nome e non necessita di espansione per essere eseguita. ne discuteremo (( )) e la relativa espansione aritmetica ulteriormente nel capitolo 34.


Il miglior sistema operativo cloud computing su OnWorks: