possono essere unarie o binarie. Le espressioni unarie sono spesso usate per esaminare lo stato di un file. Esistono anche operatori di stringa e di comparazione numerica. Il comportamento del test dipende dal numero degli argomenti. Leggere la pagina di manuale di bash per le specifiche complete. Operatori su file: -a FILE Vero se il file esiste. -b FILE Vero se è un file speciale a blocchi. -c FILE Vero se è un file speciale a caratteri. -d FILE Vero se il file è una directory. -e FILE Vero se il file esiste. -f FILE Vero se il file esiste ed è un file normale. -g FILE Vero se il file è un set-group-id. -h FILE Vero se il file è un link simbolico. -L FILE Vero se il file è un link simbolico. -k FILE Vero se il file ha il suo bit "sticky" impostato. -p FILE Vero se il file è una pipe con nome. -r FILE Vero se il file è leggibile dall' utente corrente. -s FILE Vero se il file esiste e non è vuoto. -S FILE Vero se il file è un socket. -t FD Vero se il descrittore di file è aperto su un terminale. -u FILE Vero se il file è un set-user-id. -w FILE Vero se il file è scrivibile dall'utente corrente. -x FILE Vero se il file è eseguibile dall'utente corrente. -O FILE Vero se l'utente corrente è il reale proprietario del file. -G FILE Vero se il gruppo dell'utente corrente è il reale proprietario del file. -N FILE Vero se il file è stato modificato dall'ultima volta che è stato letto. FILE1 -nt FILE2 Vero se il file1 è più recente del file2 (in accordo con la data di modifica). FILE1 -ot FILE2 Vero se il file1 è più vecchio del file2. FILE1 -ef FILE2 Vero se il file1 è un link hardware al file2. Operatori di stringa: -z STRINGA Vero se la stringa è vuota. -n STRINGA Vero se la stringa non è vuota. STRINGA1 = STRINGA2 Vero se le stringhe sono uguali. STRINGA1 != STRINGA2 Vero se le stringhe non sono uguali. STRINGA1 < STRINGA2 Vero se la STRINGA1 viene ordinata lessicograficamente prima della STRINGA2. STRINGA1 > STRINGA2 Vero se la STRINGA1 viene ordinata lessicograficamente dopo la STRINGA2. Altri operatori: -o OPZIONE Vero se l'OPZIONE di shell è abilitata. -v VAR Vero se la variabile di shell VAR è impostata. -R VAR Vero se la variabile di shell VAR è impostata ed è un riferimento a nome. ! ESPR Vero se l'ESPR è falsa. ESPR1 -a ESPR2 Vero se entrambe le espressioni espr1 E espr2 sono vere. ESPR1 -o ESPR2 Vero se è vera almeno una delle due espressioni espr1 O espr2. arg1 OP arg2 Test aritmetici. OP è uno tra -eq, -ne, -lt, -le, -gt oppure -ge. Gli operatori aritmetici binari restituiscono vero se ARG1 è uguale, non uguale, più piccolo di, più piccolo o uguale, più grande di o più grande o uguale ad ARG2. Stato di uscita: Restituisce successo se l'ESPR viene valutata vera; insuccesso se l'ESPR viene valutata falsa o viene fornito un argomento non valido.