/ usr / bin / [คืออะไร?


21

ผมก็แค่ poking รอบใน / usr / bin [และผมพบว่าไฟล์ไบนารีเอลฟ์ที่เรียกว่า /usr/bin/[. ฉันไม่เคยได้ยินเกี่ยวกับไฟล์นี้และความคิดแรกของฉันคือมันเป็นวิธีที่ฉลาดในการซ่อนโปรแกรมซึ่งอาจเป็นโทรจัน อย่างไรก็ตามมีอยู่ในเซิร์ฟเวอร์ CentOS ทั้งหมดของฉันและดูเหมือนว่าจะไม่มีรายการคู่มือ ฉันสามารถเดาได้ว่ามันคืออะไร แต่ฉันกำลังมองหาคำตอบที่เชื่อถือได้มากขึ้น ...

คำตอบ:


23

มันเป็นรูปแบบทางเลือกของคำสั่ง 'ทดสอบ' ส่วนใหญ่ใช้ในสคริปต์

กล่าวคือ

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

3
แต่การทดสอบนั้นต่างจากการทดสอบที่ต้องใช้ ARG ตัวสุดท้าย]
Florian Diesch

4
[ เป็นทุบตี builtin แต่เป็นtestเช่นนั้น เปลือกบางส่วนไม่ได้ถูกสร้างขึ้นเท่ากัน แต่มีอยู่มากมายtest(และ[) ไม่ได้สร้างอยู่ภายใน
Mo.

2
มี bash ในตัวหรืออย่างน้อยระบบของฉันก็ทำหน้าที่เหมือนมีอยู่ [- ช่วยให้การป้อนข้อมูลที่แตกต่างจาก / usr / bin / [- ช่วย
แมตต์ซิมมอนส์

3
ทดสอบและ [ถูกสร้างขึ้นเพื่อทุบตี แต่ไม่จำเป็นต้องเป็นหอยอื่น ๆ ทั้งหมด คุณสามารถย้ายออกจากเส้นทางชั่วคราวและเรียกใช้สคริปต์ทุบตีที่ใช้อย่างใดอย่างหนึ่งและคุณจะเห็นว่าสคริปต์ยังคงทำงาน
Zoredache

3
@ Josh: อีกหนึ่งพันปีเชลล์ Bourne ไม่ได้มีผู้ดำเนินการทดสอบในตัวมันเป็นคำสั่งปกติเหมือน ๆ กัน และ / bin / test เชื่อมโยงกับ / bin / [เพื่อความสะดวกในการสังเกต
Jonathan Leffler

8

มันเป็นสิ่งที่คุณโทรหาเมื่อคุณใช้สิ่งที่ชอบ

if [ -e foo ]; then ...

ในเชลล์สคริปต์ (แต่เชลล์ส่วนใหญ่มีเป็น buildin ในวันนี้) คนทดสอบควรให้เอกสารแก่คุณ


ฉันจะยอมรับคำตอบของคุณ แต่ Zypher เอาชนะคุณได้ในไม่กี่วินาที ... ขออภัย :-)
Josh

2

ดังที่คนอื่น ๆ ชี้ให้เห็น[คืออรรถประโยชน์การประเมินสภาพของเชลล์ - ทดสอบ

ในความเป็นจริงมีหน้าคู่มือสำหรับที่!

$ man

ควรให้รายละเอียดเพิ่มเติมเกี่ยวกับวงเล็บเหลี่ยมเปิด

Btw ใน OS X [ตั้งอยู่ใน/bin/[:)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.