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