/ usr / bin / [とは何ですか?


21

ただ/ usr / binをいじっていたところ、というELFバイナリファイルが見つかりました[/usr/bin/[。このファイルのことは聞いたことがなく、最初に考えたのは、トロイの木馬などのプログラムを巧妙に隠す方法だということでした。ただし、これはすべてのCentOSサーバーに存在し、手動での入力はないようです。私はそれが何であるかについて推測を危険にさらすことができますが、私はより権威のある答えを探していました...

回答:


23

これは、「テスト」コマンドの代替形式です。主にスクリプトで使用されます。

すなわち

if [ $VAR ]
then
    echo $VAR exists!
fi

3
ただし、テストとは異なり、最後の引数は]である必要があります
Florian Diesch

4
[ 組み込みのbash ですが、そうですtest。すべてのシェルが同じように作成されるわけではありません-多くのシェルではtest(および[)ビルトインではありません。
月曜日、

2
bashが組み込まれているか、少なくとも、私のシステムはあたかも存在するかのように動作しています。[--helpは/ usr / bin / [とは異なる入力を提供します。--help
マットシモンズ

3
testと[はbashに組み込まれていますが、必ずしも他のすべてのシェルではありません。一時的にパスから出て、いずれかを使用するbashスクリプトを実行すると、スクリプトが引き続き機能することがわかります。
ゾレダチェ

3
@Josh:別の千年に一度、Bourneシェルにはテスト演算子が組み込まれていませんでした。これは他のような通常のコマンドでした。また、表記上の便宜を図るため、/ bin / testは/ bin / [にリンクされていました。
ジョナサンレフラー

8

あなたが何かを使っているとき、それはあなたが呼ぶものです

if [ -e foo ]; then ...

シェルスクリプト内(ただし、ほとんどのシェルには、現在、ビルドインとして含まれています)。man testはドキュメントを提供します。


私はあなたの答えを受け入れますが、Zypherはあなたを数秒で倒しました...ごめん:
ジョシュ

2

他の人が指摘したように[、シェルの状態評価ユーティリティ-テストです。

実際、そのためのマニュアルページがあります!

$ man [

開始角かっこに関する詳細が表示されます。

Btwは、OS Xでは[/bin/[:)にあります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.