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.