Ce înseamnă -s și [[]] într-o condiție if în bash?

if [[ -s log.txt ]];

Ce înseamnă -s? Știu -z înseamnă șir de dimensiuni zero. Nu găsesc nicio documentație despre -s.

Ce înseamnă [] sau [[]], în timp ce scriu o condiție if. Am folosit if fără [] sau [[]] și a funcționat bine.

Răspuns

Testul -s returnează adevărat dacă

[…] dacă fișierul există și are o dimensiune mai mare de zero

Aceasta este documentată în manualul bash și, de asemenea, în manualul pentru utilitarul test (testul poate fi scris și if test -s file; then).

Pentru [ ... ] și [[ ... ]], vezi: Bash – Dacă confuzie de sintaxă

Răspuns

-s FIȘIER: – FIȘIER există și are o dimensiune mai mare decât zero.

Partea [[…]] permite testarea unei stări folosind operatori. Gândiți-vă la asta ca la o afirmație if. În exemplul dvs., utilizați operatorul -s, care testează că fișierul la care se face referință nu este gol.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *