2017-07-23 1 views

Répondre

1

Tout d'abord, votre script est invalide dans sh POSIX, puisque [[ n'est pas défini dans sh.

En bash, d'autre part, vous manque des espaces autour des opérateurs de comparaison!= et ==. C'est pourquoi l'expression à l'intérieur [[ ]] est traitée comme une chaîne de longueur non nulle, ce qui est vrai. Par conséquent, echo est imprimé deux fois.

Comme cela a été suggéré plusieurs fois sur StackOverflow, il est toujours bon d'exécuter vos scripts shell via shellcheck (également disponible en tant qu'outil de ligne de commande), ce qui vous aidera à comprendre et à expliquer ces erreurs.