/ Usr / bin / [nedir?


21

Sadece / usr / bin dizininde dolaşıyordum ve adında bir ELF ikili dosyası buldum [. /usr/bin/[. Bu dosyayı hiç duymadım ve ilk düşüncem bunun bir programı saklamanın akıllıca bir yolu, muhtemelen bir trojan olduğuydu. Ancak, tüm CentOS sunucularımda mevcut ve manuel girişi yok gibi görünüyor. Ne olduğu konusunda bir tahminde bulunabiliyorum ama daha güvenilir bir cevap bekliyordum ...

Yanıtlar:


23

Bu 'test' komutunun alternatif bir şeklidir. Genellikle komut dosyalarında kullanılır.

yani

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

3
Ancak testin aksine, son
argümanın

4
[ olan bir bash yerleşik ama böyledir test. tüm kabukları eşit yaratılmamıştır - pek çoğunda , test(ve [) yerleşik değildir.
Mo

2
Dahili bir bash var ya da en azından sistemim varmış gibi davranıyor. [--help / usr / bin / ['dan farklı girdiler verir
Matt Simmons

3
Test ve [bash için yerleşiktir, ancak diğer tüm kabukları mutlaka değil. Geçici olarak yolun dışına çıkabilir ve her ikisini de kullanan bir bash komut dosyasını çalıştırabilir ve komut dosyasının hala çalıştığını göreceksiniz.
Zoredache

3
@Josh: Bir kez daha bir binyıl üzerine, Bourne kabuğu test operatörüne yerleşik olarak sahip değildi. Diğerleri gibi normal bir komuttu; ve / bin / test, gösterime uygunluk sağlamak için / bin / ['a bağlandı.
Jonathan Leffler

8

Gibi bir şey kullanırken ne diyorsun

if [ -e foo ]; then ...

Bir kabuk komut dosyasında (ancak çoğu kabuklar bu günlerde bir buildin olarak var). adam testi size doktorları vermeli.


Cevabınızı kabul ediyorum ama Zypher birkaç saniye içinde sizi yendi ... üzgünüm :-)
Josh

2

Diğerlerinin de belirttiği gibi [, kabuğun durum değerlendirme aracı - testidir.

Aslında, bunun için bir el ile sayfa var!

$ adam [

açılış köşeli ayraç hakkında daha fazla bilgi vermelisiniz.

Btw, OS X, [bulunur /bin/[:)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.