Co oznaczają -s i [[]] w warunku if w bash?

if [[ -s log.txt ]];

Co oznacza -s? Wiem, że -z oznacza łańcuch o zerowej wielkości. Nie mogę znaleźć żadnej dokumentacji na temat -s.

Co oznacza [] lub [[]] podczas pisania warunku if. Użyłem if bez [] lub [[]] i działało dobrze.

Odpowiedź

Test -s zwraca prawdę, jeśli

[…] jeśli plik istnieje i ma rozmiar większy niż zero

Jest to udokumentowane w bash podręczniku, a także w podręczniku narzędzie test (test można także zapisać if test -s file; then).

Dla [ ... ] i [[ ... ]], zobacz: Bash – Jeśli pomieszanie składni

Odpowiedź

-s PLIK: – PLIK istnieje i ma rozmiar większy niż zero.

Część [[…]] umożliwia testowanie warunku za pomocą operatorów. Potraktuj to jako stwierdzenie „if”. W swoim przykładzie „używasz operatora -s, który sprawdza, czy plik, do którego się odwołuje, nie jest pusty.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *