web-dev-qa-db-ja.com

システムの/ binにある `[`プログラムとは何ですか?

私は最近Fedoraの/binフォルダを閲覧していて、[という名前のバイナリに気づきました。私はそれについてもっと情報を得るためにインターネットを検索しようとしました、しかし私は何も有用なものを見つけることができませんでした。 straceを実行しても、詳細な調査に役立つ情報は得られないようです。

それは何ですか?私は心配すべきですか?システムの侵害の結果である可能性がありますか?実行する必要がありますか?パッケージに属していますか?

32
NlightNFotis

多くのGNU/Linuxディストリビューションの[ツリーの下にある/binバイナリは、心配する必要はありません。少なくとも私のFedora 19では、以下に示すように、それはcoreutilsパッケージの一部です。

$ rpm -qf /bin/[
coreutils-8.21-13.fc19.x86_64

また、testの同義語であり、[ expression ]のような式をシェルスクリプトで記述したり、インタラクティブに使用したりすることもできます。

37
NlightNFotis

[コマンドはtestコマンドと同じです。

シェルスクリプトで比較的簡潔な条件ステートメントを記述できます。 SunOSのマニュアルページから:

   if [ "$1" = "pear" ] || [ "$1" = "grape" ] || [ "$1" = "Apple" ]
   then
       command
   fi

削除するとスクリプトが壊れます!

[は常にtestと同等のものとして与えられますが、]は明示的に言及されていませんが、常にそこにあります。私は今これを http://ss64.com/bash/test.html で見つけました:

When the [ form is used, the last argument to the command must be a ]

これは安心です-やっと私は彼らが言うように完了しました。

2
Harry Weston