Skip to content

messagerie.sh : ligne 29 : [: missing `]’

Solution:

messagerie.sh : ligne 29 : [: missing ‘]’

Vous utilisez les éléments suivants :

if [ "alerttype" == "notification"]; then`

Cependant, la commande ci-dessus manque un space avant ], ça devrait être:

if [ "alerttype" == "notification" ]; then
                                  ^

Les règles de base des conditions

Lorsque vous commencez à écrire et à utiliser vos propres conditions, vous devez connaître certaines règles pour éviter d’obtenir des erreurs difficiles à détecter. Voici trois importantes :

  1. Gardez toujours des espaces entre les crochets et la vérification/comparaison réelle. Les éléments suivants ne fonctionneront pas :

    if [$foo -ge 3]; then

    Bash se plaindra d’un “manquant ‘]'”.

Conditions de source dans les scripts bash (instructions if)

Il vous manque un seul espace.

#BEFORE
if [ "alerttype" == "notification"]; then
#AFTER
if [ "alerttype" == "notification" ]; then
#                                 ^

Un autre exemple:

$ if [ "a" == "a"]; then echo "yes"; else echo "no"; fi
-bash: [: missing `]'
no

$ if [ "a" == "a" ]; then echo "yes"; else echo "no"; fi
yes

Manque l’espace avant le ] Une autre option de format est également :

$ [ "a" == "a" ] && echo "yes" || echo "no"



Articles Similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.