0

このifブロックで構文エラーが発生しましたが、修正できませんでした

if [[ $X >= 100] || [$Y >= 100 ]]
then
   echo "..."
fi

これを書き直しましたが、正しい構文を見つけることができませんでした。前もって感謝します!

4

4 に答える 4

5

これは構文エラーです。試してください:

if ((X >= 100 || Y >= 100 ))
then
   echo "..."
fi

ノート

  • この構文を使用すると、覚える必要はありません-ge。これは算数と同じです
  • ((...))式がゼロ以外の場合は終了ステータス 0 を返し、式がゼロの場合は 1 を返す算術コマンドです。let副作用 (割り当て) が必要な場合は、 の同義語としても使用されます。http://mywiki.wooledge.org/ArithmeticExpressionを参照してください。
于 2013-01-14T23:21:41.380 に答える
3

あなたが探しているのはこれです:

if [[ $X -ge 100 || $Y -ge 100 ]];
then
   echo "..."
fi
于 2013-01-14T23:21:31.610 に答える
2

あなたifは大丈夫です。あなたの[[コマンドは台無しです。

if [[ $X -ge 100 || $Y -ge 100 ]]
于 2013-01-14T23:21:30.873 に答える
1

式をネストしようとしているようですが[...]、これは ではできませんbash。式は、[[ ... ]]で使用できる完全に別の構造ですbash。他の回答で十分にカバーされているため、正しい表現を投稿する必要はありません。

于 2013-01-15T13:37:49.197 に答える