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.