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.