J'ai des problèmes avec bash. J'essaie de mettre une commande dans une instruction if
puis de la comparer à une chaîne.
Cela fonctionne parfaitement.
echo $(ipcs | grep Shared | awk '{print $2}')
Lorsque je le mets dans une instruction if
, j'ai des problèmes.
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" -eq "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" = "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
$ if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared"]; then
echo expression evaluated as true;
else
echo expression evaluated as false;
fi
bash: [: missing `]'
expression evaluated as false
J'ai essayé ==
, =
, et -eq
parce que je ne savais pas lequel utiliser.
Votre erreur missing ]'
Est due au fait que vous avez besoin d'un espace entre "Shared"
Et ]
, La ligne doit donc être if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then
.