/ Usr / bin / [là gì?


21

Tôi chỉ chọc vào / usr / bin và tôi tìm thấy một tệp nhị phân ELF được gọi [. /usr/bin/[. Tôi chưa bao giờ nghe về tập tin này và suy nghĩ đầu tiên của tôi là đó là một cách thông minh để che giấu một chương trình, có thể là trojan. Tuy nhiên, nó có mặt trên tất cả các máy chủ CentOS của tôi và dường như không có mục nhập thủ công. Tôi có thể mạo hiểm đoán xem đó là gì nhưng tôi đang tìm kiếm một câu trả lời có thẩm quyền hơn ...

Câu trả lời:


23

Đây là một hình thức thay thế của lệnh 'kiểm tra'. Chủ yếu được sử dụng trong các kịch bản.

I E

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

3
Nhưng không giống như thử nghiệm, nó đòi hỏi đối số cuối cùng phải là một]
Florian Diesch

4
[ một bash dựng sẵn, nhưng cũng vậy test. không phải tất cả các shell đều được tạo ra bằng nhau - trong rất nhiều trong số chúng, test(và [) không phải là nội trang.

2
Có một bash tích hợp, hoặc ít nhất, hệ thống của tôi đang hoạt động như thể có. [--help cung cấp đầu vào khác với / usr / bin / [--help
Matt Simmons

3
test và [được dựng sẵn để bash, nhưng không nhất thiết là tất cả các shell khác. Bạn có thể tạm thời di chuyển ra khỏi đường dẫn và chạy tập lệnh bash sử dụng một trong hai và bạn sẽ thấy tập lệnh vẫn hoạt động.
Zoredache

3
@Josh: ngày một thiên niên kỷ khác, vỏ Bourne không có toán tử thử nghiệm được tích hợp. Đó là một lệnh thông thường như mọi lệnh khác; và / bin / test đã được liên kết với / bin / [để mang lại sự thuận tiện cho công chứng.
Jonathan Leffler

8

Đó là những gì bạn gọi khi bạn đang sử dụng một cái gì đó như

if [ -e foo ]; then ...

trong một tập lệnh shell (nhưng hầu hết các shell đều có nó dưới dạng buildin ngày nay). kiểm tra người đàn ông sẽ cung cấp cho bạn các tài liệu.


Tôi sẽ chấp nhận câu trả lời của bạn nhưng Zypher đã đánh bại bạn trong vài giây ... xin lỗi :-)
Josh

2

Như những người khác đã chỉ ra, [là tiện ích đánh giá điều kiện của shell - thử nghiệm.

Trong thực tế, có một trang hướng dẫn cho điều đó!

$ người đàn ông [

sẽ cung cấp cho bạn thêm chi tiết về khung vuông mở.

Btw, trong OS X, [nằm ở /bin/[:)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.