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
Sharedapparaî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.