Que signifient -s et [[]] dans une condition if dans bash?

if [[ -s log.txt ]];

Que signifie -s? Je sais que -z signifie une chaîne de taille zéro. Je ne trouve aucune documentation sur -s.

Que signifie [] ou [[]] lors de lécriture dune condition if. Jai utilisé if sans [] ou [[]] et cela a bien fonctionné.

Réponse

Le test -s renvoie vrai si

[…] si le fichier existe et a une taille supérieure à zéro

Ceci est documenté dans le manuel bash, ainsi que dans le manuel de lutilitaire test (le test peut également être écrit if test -s file; then).

Pour [ ... ] et [[ ... ]], voir: Bash – En cas de confusion de syntaxe

Réponse

-s FILE: – FILE existe et a une taille supérieure à zéro.

La partie [[…] permet de tester une condition à laide dopérateurs. Considérez-le comme une déclaration if. Dans votre exemple, vous « utilisez lopérateur -s, qui teste que le fichier référencé nest pas vide.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *