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.