Bash if 문 [: 누락된 `]' 오류

Bash if 문 [: 누락된 `]' 오류

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.

관련 정보