Esta pergunta já tem respostas aqui :
Comentários
- Para aqueles que estão se perguntando: essas não são declarações de várias linhas!
- Se você apenas deseja verificar se a string
Shared
aparece na saída do comando você pode querer considerar o uso do status de saída do grep diretamente, por exemploipcs | { if grep -q "Shared"; then echo "true"; else echo "false"; fi }
ouipcs | grep -q "Shared" && echo "true" || echo "false"
– consulte unix.stackexchange.com/a/48536/65304 por exemplo
Resposta
Sua missing ]"
o erro ocorre porque você precisa de um espaço entre "Shared"
e ]
, então a linha deve ser if [ "$(ipcs | grep Shared | awk "{print $2}")" == "Shared" ]; then
.