Co znamená -s a [[]] v podmínce if v bash?

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *