Cosa significano -s e [[]] in una condizione if in bash?

if [[ -s log.txt ]];

Cosa significa -s? Lo so -z significa stringa di dimensione zero. Non riesco a trovare alcuna documentazione su -s.

Cosa significa [] o [[]], mentre si scrive una condizione if. Ho utilizzato if senza [] o [[]] e ha funzionato bene.

Risposta

Il -s test restituisce true se

[…] se il file esiste e ha una dimensione maggiore di zero

Questo è documentato nel manuale bash, e anche nel manuale per lutilità test (il test può anche essere scritto if test -s file; then).

Per [ ... ] e [[ ... ]], vedere: Bash – If Syntax confusion

Risposta

-s FILE: – FILE esiste e ha una dimensione maggiore di zero.

La parte [[…]] permette di testare una condizione utilizzando operatori. Pensala come unaffermazione if. Nel tuo esempio, stai utilizzando loperatore -s, che verifica che il file di riferimento non sia vuoto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *