フォルダにプログラムが/bin
あるという事実に常に驚きます。[
if [ something ]
これを行うときは、次のように呼びます。
[
シェルでプログラムを明示的に呼び出すと、適切なプログラムを要求して閉じ]
括弧を指定すると、括弧の間に何を挿入しても何もしません。
言うまでもなく、プログラムの助けを借りる一般的な方法は機能しません。つまり、仕事でもman [
仕事でもありません[ --help
。
ベストアンサー1
この[
コマンドの目的は、テスト式を評価することです。 0終了状態で返されます(つまり、本物)式がtrueと他の値として解釈されるとき(これは間違った)そうでなければ。
何もしないわけではありませんが、終了状態で結果を見つけることができます。シェルでは、$?
Bourne シェルや他のほとんどのシェル (fish/rc/es/csh/tcsh...) と同様に、最後のコマンド$status
の終了ステータスを見つけることができます。
$ [ a = a ]
$ echo "$?"
0
$ [ a = b ]
$ echo "$?"
1
たとえば、他の言語では、perl
終了ステータスは次の戻り値として返されますsystem()
。
$ perl -le 'print system("[", "a", "=", "a", "]")'
0
すべての最新のBourne様シェル(およびfish
)には組み込み[
コマンドがあります。通常、ここに含まれるコマンドは、他のシェルを使用する場合、または上記のコマンドと同じ操作を実行した場合にのみ実行されます/bin
。env [ foo = bar ]
find . -exec [ -f {} ] \; -print
perl
順序[
は名前としても知られていますtest
。 asが呼び出されたら、引数をtest
終了する必要はありません。]
あなたのシステムにマニュアルページがないかもしれませんが、[
おそらくそうです。しかし、もう一度申し上げますが、文書化または実装されますtest
。シェルに組み込まれている機能については、シェルのドキュメントをお読みください。/bin/[
/bin/test
[
このユーティリティの履歴と[[...]]
kshテスト式との違いの詳細については、以下を参照してください。その他の質問と回答についてはこちらをご覧ください。