Cette question a déjà des réponses ici :
Commentaires
- Pour ceux qui se demandent: ce ne sont pas des instructions multilignes!
- Si vous voulez juste vérifier si la chaîne
Shared
apparaît dans la sortie de la commande vous voudrez peut-être envisager dutiliser directement létat de sortie de grep, par exempleipcs | { if grep -q "Shared"; then echo "true"; else echo "false"; fi }
ouipcs | grep -q "Shared" && echo "true" || echo "false"
– voir unix.stackexchange.com/a/48536/65304 par exemple
Réponse
Votre missing ]"
lerreur est due au fait que vous avez besoin dun espace entre "Shared"
et ]
, donc la ligne doit être if [ "$(ipcs | grep Shared | awk "{print $2}")" == "Shared" ]; then
.