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

관련 정보