Seu erro missing ]' é porque você precisa de um espaço no intervalo entre "Shared" e ] , portanto, a linha deve ser if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then .
Estou tendo problemas com o bash. Eu estou tentando colocar um comando em uma instrução if e, em seguida, compará-lo a uma seqüência de caracteres.
Isso funciona perfeitamente.
echo $(ipcs | grep Shared | awk '{print $2}')
Quando coloco em uma declaração if , tenho alguns problemas.
$ 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
Eu tentei == , = e -eq porque não sabia qual deles usar.
Seu erro missing ]' é porque você precisa de um espaço no intervalo entre "Shared" e ] , portanto, a linha deve ser if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then .
Tags bash test shell-script