![Instrução Bash if [: erro `]' ausente](https://rvso.com/image/57213/Instru%C3%A7%C3%A3o%20Bash%20if%20%5B%3A%20erro%20%60%5D'%20ausente%20.png)
Estou tendo problemas com o bash. Estou tentando colocar um comando em uma if
instrução e compará-lo com uma string.
Isso funciona perfeitamente.
echo $(ipcs | grep Shared | awk '{print $2}')
Quando coloco isso em uma if
declaração, 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 tinha certeza de qual usar.
Responder1
Seu missing ]'
erro é porque você precisa de um espaço entre "Shared"
e ]
, então a linha deveria ser if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then
.