![Bash if declaración [: falta error `]'](https://rvso.com/image/57213/Bash%20if%20declaraci%C3%B3n%20%5B%3A%20falta%20error%20%60%5D'%20.png)
Tengo problemas con bash. Estoy intentando poner un comando en una if
declaración y luego compararlo con una cadena.
Esto funciona perfectamente.
echo $(ipcs | grep Shared | awk '{print $2}')
Cuando lo pongo en un if
comunicado tengo algunos 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
Probé ==
, =
y -eq
porque no estaba seguro de cuál usar.
Respuesta1
Su missing ]'
error se debe a que necesita un espacio entre "Shared"
y ]
, por lo que la línea debería ser if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then
.