![Bash if statement [: отсутствует `]' ошибка](https://rvso.com/image/57213/Bash%20if%20statement%20%5B%3A%20%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%20%60%5D'%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20.png)
У меня проблема с bash. Я пытаюсь поместить команду в оператор if
, а затем сравнить ее со строкой.
Это работает идеально.
echo $(ipcs | grep Shared | awk '{print $2}')
Когда я пишу это в if
заявлении, у меня возникают некоторые проблемы.
$ 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
Я попробовал ==
, =
, и , -eq
потому что не был уверен, какой из них использовать.
решение1
Ваша missing ]'
ошибка в том, что между "Shared"
и нужен пробел ]
, поэтому строка должна быть if [ "$(ipcs | grep Shared | awk '{print $2}')" == "Shared" ]; then
.