Vad betyder -s och [[]] i ett if-tillstånd i bash?

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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *