Apa itu / usr / bin / [?

21

Saya hanya mencari-cari di / usr / bin dan saya menemukan file biner ELF bernama [. /usr/bin/[. Saya belum pernah mendengar tentang file ini dan pikiran pertama saya adalah bahwa itu adalah cara yang cerdas untuk menyembunyikan suatu program, mungkin trojan. Namun ia ada di semua server CentOS saya dan tampaknya tidak memiliki entri manual. Saya bisa menebak apa itu tapi saya sedang mencari jawaban yang lebih otoritatif ...

Josh
sumber

Jawaban:

23

Ini adalah bentuk alternatif dari perintah 'test'. Paling banyak digunakan dalam skrip.

yaitu

if [ $VAR ]
then
    echo $VAR exists!
fi
Zypher
sumber
3
Tapi tidak seperti tes itu membutuhkan arg terakhir menjadi]
Florian Diesch
4
[ adalah bash builtin, tapi begitu juga test. tidak semua cangkang dibuat sama - dalam banyak cangkang, test(dan [) tidak builtin.
Mo.
2
Ada bash built-in, atau setidaknya, sistem saya bertindak seolah-olah ada. [--help memberi input berbeda dari / usr / bin / [--help
Matt Simmons
3
menguji dan [dibangun untuk bash, tetapi tidak harus semua shell lainnya. Anda dapat keluar sementara dari lintasan dan menjalankan skrip bash yang menggunakan salah satunya dan Anda akan melihat bahwa skrip tersebut masih berfungsi.
Zoredache
3
@ Josh: sekali pada milenium lain, shell Bourne tidak memiliki operator uji built-in. Itu adalah perintah biasa seperti yang lain; dan / bin / test dikaitkan dengan / bin / [untuk memberikan kenyamanan notasi.
Jonathan Leffler
8

Itu yang Anda sebut ketika Anda menggunakan sesuatu seperti

if [ -e foo ]; then ...

dalam skrip shell (tetapi sebagian besar shell memilikinya sebagai buildin hari ini). tes pria harus memberi Anda dokumen.

Florian Diesch
sumber
Saya akan menerima jawaban Anda tetapi Zypher mengalahkan Anda dalam beberapa detik ... maaf :-)
Josh
2

Seperti yang ditunjukkan orang lain, [adalah utilitas evaluasi kondisi shell - tes.

Bahkan, ada halaman manual untuk itu!

$ man [

harus memberi Anda rincian lebih lanjut tentang braket persegi pembukaan.

Btw, di OS X, [terletak di /bin/[:)

Devy
sumber