Bash if statement [: отсутствует `]' ошибка

Bash if statement [: отсутствует `]' ошибка

У меня проблема с 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.

Связанный контент