質問

gnuwin32 / binディレクトリを見ると、 [。exe

という奇妙なプログラムファイルがあります。

ドキュメント、gnuwin32.sourceforge.net、またはGoogle検索で見つけることができなかったので、実行して取得しました:

$ [
[: missing `]'
$

だから私はそれをパラメータとして与えて、得た

$ [ ]

$

文句は言わなかったので、正しい軌道に乗っていると思いました。試しました:

$ [ hello ]

再び、苦情はありません。だから私は算術式を試しました:

$ [ 1 + 1 ]
[: +: binary operator expected
$

プレフィックス&など、さまざまな組み合わせを試しました。後置記法ですが、何も機能していないようです。このことは何をしますか?

役に立ちましたか?

解決

条件付き式の評価に使用されます。
test 実行可能ファイルと同等です(おそらくシンボリックリンクですか?)。
マンページはこちらです。

これは多くのbashスクリプトで見ることができます:

if [ "$LOGNAME" = "scott" ]
then
    echo "Logged in as Scott"
else
     echo "incorrect user"
fi

おもしろいことに、 [ はbash言語の一部ではなく、実際には戻りコードが「IF」によって使用される実行可能ファイルです。これが、 [ とその最初の引数の後のスペースが必須である理由です-省略した場合、スクリプトは [ " $ LOGNAME" と失敗します。

算術演算を使用することはできません-そのためには expr を使用します(こちら)。 ただし、文字列と数値で比較演算子を使用するだけでなく、幅広いファイルプロパティ(存在するか、どのタイプかなど)をテストできます。

他のヒント

test a

==

[ a ]

砂糖だけです

編集:明確にするために、それは条件付き構文です。 [" a" =" a" ]

既に述べた別の答えは、 test と同じです。 bashではビルトインでもあるため、 help ビルトイン( help test )でヘルプを取得できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top