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ý.