if [[ -s log.txt ]];
Vad betyder -s? Jag vet -z betyder sträng med nollstorlek. Jag hittar ingen dokumentation på -s.
Vad betyder [] eller [[]] när jag skriver ett if
-villkor. Jag har använt if
utan [] eller [[]] och det fungerade bra.
Svar
-s
testet returnerar true om
[…] om filen finns och har en storlek större än noll
Detta dokumenteras i bash
manualen och även i manualen för verktyget test
(testet kan också skrivas if test -s file; then
).
För [ ... ]
och [[ ... ]]
, se: Bash – Om syntaxförvirring
Svar
-s
FIL: – FIL finns och har en storlek större än noll.
[[…]] -delen gör det möjligt att testa ett tillstånd med operatörer. Tänk på det som ett if-uttalande. I ditt exempel använder du operatorn -s
, som testar att den refererade filen inte är tom.