- Learn
- Shell Scripting e Bash: la Guida
- Il comando test
Il comando test
Come in ogni linguaggio di programmazione, anche in Bash è possibile verificare il valore contenuto nelle variabili dichiarate, mediante il comando test
: esso che ritorna 0
(vero) o 1
(falso), a seconda della valutazione dell’espressione assegnata. Si possono anche usare le parentesi quadre in sostituzione di test
: test expr
e [ expr ]
sono quindi equivalenti. Il risultato della valutazione viene memorizzato nella variabile built-in $?
, e lo si può usare con gli operatori booleani &&
e ||
.
Vediamo un semplice esempio:
#!/bin/bash
i="abc"
j="def"
[ $j != $i ]
echo $?
Questo script utilizza l’operatore !=
per verificare se il valore contenuto in $j
sia diverso da quello contenuto in $i
. Si possono confrontare valori aritmetici usando gli operatori -eq
(uguale), -ne
(diverso), -lt
(minore di), -le
(minore di o uguale a), -gt
(maggiore di), -ge
(maggiore di o uguale a). È possibile anche confrontare stringhe, verificandone l’uguaglianza o la precedenza di una rispetto all’altra, utilizzando gli operatori =
, !=
, <
, >
(poiché questi ultimi due vengono usati da Bash anche per la redirezione dell’output, è necessario che siano preceduti da \
). L’operatore unario -z
valuta se la stringa sia nulla, mentre -n
o l’omissione di qualunque operatore risulta vero se la stringa non è vuota. Esistono inoltre operatori per test su file, come gli operatori unari -d
e -e
che valutano rispettivamente l’esistenza del file, e se esso sia una directory, o l’operatore binario -nt
, che valuta se il primo file è stato modificato più recentemente del secondo. È utile controllare il manuale (digitando man test
) per ottenere la lista di tutte le opzioni di test disponibili.
Infine, è possibile comporre condizioni più complicate tramite gli operatori della logica booleana che abbiamo introdotto nella sezione precedente: l’operatore -a
corrisponde all’and logico, -o
all’or mentre il !
alla negazione; per imporre la precedenza di un operatore rispetto ad un altro si possono utilizzare le parentesi, che essendo riservate tipicamente all’esecuzione di espressioni in sotto-shell, devono essere in questo caso precedute da \
.
Il comando test è implementato su tutte le shell che seguono lo standard POSIX, perciò è utilizzabile su quasi tutte quelle disponibili; Bash, Zsh e la Korn shell implementano anche un nuovo comando test, identificato da doppie parentesi quadre [[
, che fornisce una sintassi più semplice e intuitiva degli operatori appena descritti. Utilizzando la nuova sintassi, non è necessario anteporre il simbolo \
alle parentesi, racchiudere fra "
le variabili contenenti nomi di file, ed è possibile utilizzare la stessa notazione delle operazioni aritmetiche per i tre operatori di logica booleana &&
, ||
e !
. Per ulteriori dettagli sulle specifiche della nuova sintassi, suggeriamo di controllare la pagina di manuale di Bash (digitando man bash
).
Se vuoi aggiornamenti su Linux inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Costruire una pagina con Twitter Bootstrap – Parte 2
Per usufruire delle potenzialità di Twitter Bootstrap è necessario inserirlo all’interno del sito. In questo video vedremo come completare la […]