if [[ -s log.txt ]];
Wat betekent -s? Ik weet dat -z een tekenreeks van nul betekent. Ik kan geen documentatie vinden over -s.
Wat betekent [] of [[]] tijdens het schrijven van een if
voorwaarde. Ik heb if
zonder [] of [[]] gebruikt en het werkte prima.
Antwoord
De -s
test retourneert true if
[…] als het bestand bestaat en heeft een grootte groter dan nul
Dit wordt gedocumenteerd in de bash
handleiding, en ook in de handleiding voor het test
hulpprogramma (de test kan ook worden geschreven if test -s file; then
).
Voor [ ... ]
en [[ ... ]]
, zie: Bash – If Syntax confusion
Antwoord
-s
FILE: – FILE bestaat en heeft een grootte groter dan nul.
Het [[…]] deel laat toe om een conditie te testen met operators. Beschouw het als een if-statement. In uw voorbeeld “gebruikt u de -s
operator, die test of het bestand waarnaar wordt verwezen niet leeg is.