Wat betekenen -s en [[]] in een if-toestand in bash?

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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *