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

おすすめ記事