if [[ -s log.txt ]];
Co znamená -s? Vím, že -z znamená řetězec nulové velikosti. Nemohu najít žádnou dokumentaci na -s.
Co znamená [] nebo [[]] při psaní podmínky if. Použil jsem if bez [] nebo [[]] a fungovalo to dobře.
Odpovědět
Test -s vrátí hodnotu true, pokud
[…] pokud soubor existuje a má velikost větší než nula
Toto je dokumentováno v manuálu bash a také v manuálu pro obslužný program test (test může být také zapsán if test -s file; then).
Pro [ ... ] a [[ ... ]], viz: Bash – pokud nedochází k syntaxi
Odpověď
-s SOUBOR: – SOUBOR existuje a má velikost větší než nula.
Část [[…]] umožňuje otestovat stav pomocí operátorů. Přemýšlejte o tom jako o prohlášení if. Ve svém příkladu „používáte operátor -s, který testuje, zda odkazovaný soubor není prázdný.