Was bedeuten -s und [[]] in einer if-Bedingung in bash?

if [[ -s log.txt ]];

Was bedeutet -s? Ich weiß, -z bedeutet Zeichenfolge mit der Größe Null. Ich kann keine Dokumentation zu -s finden.

Was bedeutet [] oder [[]] beim Schreiben einer if -Bedingung. Ich habe if ohne [] oder [[]] verwendet und es hat gut funktioniert.

Antwort

Der -s -Test gibt true zurück, wenn

[…] wenn eine Datei vorhanden ist und hat eine Größe größer als Null

Dies ist im bash Handbuch und auch im Handbuch für dokumentiert das Dienstprogramm test (der Test kann auch if test -s file; then geschrieben werden).

Für [ ... ] und [[ ... ]], siehe: Bash – Wenn Syntaxverwirrung

Antwort

-s DATEI: – DATEI existiert und hat eine Größe größer als Null.

Mit dem […] Teil können Sie eine Bedingung mithilfe von Operatoren testen. Betrachten Sie es als eine if-Anweisung. In Ihrem Beispiel verwenden Sie den Operator -s, der prüft, ob die referenzierte Datei nicht leer ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.