1. ホーム
  2. bash

Bashではなぜ'['や']'の周りに空白を入れる必要があるのですか?

2023-10-14 23:38:54

質問

Bashスクリプトを書こうとしたのですが、そのスクリプトは if ステートメントを使用しています。

if[$CHOICE -eq 1];

の前後にスペースを入れるまで、スクリプトはエラーを出していました。 [ の前と ] の前に、以下のように記述します。

if [ $CHOICE -eq 1 ];

ここで質問なのですが、なぜBashでは角括弧の周りのスペースが重要なのでしょうか?

どのように解決するのですか?

を把握したら [ コマンド を実行すれば、すべてが明確になります!

[ は " の別の綴り方です。 test となります。

help [

しかし まさに は同じです。 test はより詳細なヘルプページを持っていることがわかります。チェック

help test

...詳しくはこちら


さらに注意してほしいのは、意図的に使っている help test を使用しており man test . それは test[ は、現在ではシェルの組み込みコマンドです。とは機能セットが異なる場合があります。 /bin/test/bin/[ で説明されているコマンドは、coreutils の man ページで説明されているコマンドです。