Khi bạn làm việc với dòng lệnh Linux, đôi khi bạn muốn kiểm tra một số thứ nhất định, chẳng hạn như giá trị số nguyên hoặc tệp có thuộc loại nào đó hay không. Có một tiện ích dòng lệnh test command tích hợp mà bạn có thể sử dụng để thực hiện hầu hết các phép so sánh và kiểm tra này.
Trong hướng dẫn này, chúng tôi sẽ giải thích những điều cơ bản về công cụ này với một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, chúng tôi xin đề cập rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên Ubuntu 22.04 LTS.
Và đây là những gì trang hướng dẫn nói về tiện ích này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách thức hoạt động của công cụ này.
Lưu ý: Hãy nhớ rằng một số tùy chọn dòng lệnh mà test cung cấp hữu ích nhất khi sử dụng trong các tập lệnh shell.
Một cách tốt hơn là viết một cái gì đó như thế này:
Vì vậy, nếu các chuỗi giống nhau, từ "same" sẽ được in ra ở đầu ra, nếu không thì không in gì cả.
Tương tự, bạn có thể sử dụng mẫu sau nếu muốn kiểm tra bất đẳng thức.
Đây là ảnh chụp màn hình cho thấy tùy chọn dòng lệnh này hoạt động như thế nào:
Tương tự, bạn có thể sử dụng '-ge' để kiểm tra lớn hơn hoặc bằng, '-gt' để kiểm tra lớn hơn, '-le' để kiểm tra nhỏ hơn hoặc bằng, '-lt' để kiểm tra nhỏ hơn và '-ne' để kiểm tra không bằng.
Đây là cách tôi đã thử nghiệm trên hệ thống của mình:
Các so sánh tệp khác mà bạn có thể thực hiện bao gồm tệp nào cũ hơn (-ot) và liệu hai tệp có cùng số thiết bị và inode hay không (-ef).
Để kiểm tra xem một tệp nhất định có phải là thư mục hay không, hãy sử dụng tùy chọn -d theo cách sau:
test -d [filename]
Ví dụ:
test -d new_dir
Sau đây là một số tùy chọn kiểm tra loại tệp khác mà lệnh 'test' cung cấp:
Trong trường hợp bạn chưa biết, cả -h và -L đều kiểm tra xem tệp có tồn tại và là liên kết tượng trưng hay không - do đó, việc loại trừ chúng là hợp lý, phải không?
Trong hướng dẫn này, chúng tôi sẽ giải thích những điều cơ bản về công cụ này với một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, chúng tôi xin đề cập rằng tất cả các ví dụ trong bài viết này đều đã được thử nghiệm trên Ubuntu 22.04 LTS.
Lệnh kiểm tra Linux
Như đã đề cập ở trên, lệnh kiểm tra được sử dụng để thực hiện kiểm tra và so sánh. Đây là cú pháp của nó:
Mã:
test EXPRESSION
Mã:
test - kiểm tra các loại tệp và so sánh các giá trị
Lưu ý: Hãy nhớ rằng một số tùy chọn dòng lệnh mà test cung cấp hữu ích nhất khi sử dụng trong các tập lệnh shell.
Câu hỏi 1. Làm thế nào để so sánh hai chuỗi?
Đơn giản, bạn chỉ cần sử dụng dấu bằng (=) giữa chúng. Ví dụ:
Mã:
test howto = forge
Mã:
test howto = forge && echo "same"
Tương tự, bạn có thể sử dụng mẫu sau nếu muốn kiểm tra bất đẳng thức.
Mã:
STRING1 != STRING2
Câu hỏi 2. Làm thế nào để so sánh các số nguyên bằng cách sử dụng test?
Điều này cũng rất đơn giản - chỉ cần so sánh chúng bằng cách sử dụng '-eq'. Ví dụ:
Mã:
test 5 -eq 7 && echo "same"
Tương tự, bạn có thể sử dụng '-ge' để kiểm tra lớn hơn hoặc bằng, '-gt' để kiểm tra lớn hơn, '-le' để kiểm tra nhỏ hơn hoặc bằng, '-lt' để kiểm tra nhỏ hơn và '-ne' để kiểm tra không bằng.
Câu hỏi 3. Làm thế nào để kiểm tra/so sánh các tệp bằng cách sử dụng test?
Để kiểm tra tệp nào trong hai tệp mới hơn, hãy sử dụng '-nt'. Ví dụ:
Mã:
test file1 -nt file2
Các so sánh tệp khác mà bạn có thể thực hiện bao gồm tệp nào cũ hơn (-ot) và liệu hai tệp có cùng số thiết bị và inode hay không (-ef).
Để kiểm tra xem một tệp nhất định có phải là thư mục hay không, hãy sử dụng tùy chọn -d theo cách sau:
test -d [filename]
Ví dụ:
test -d new_dir
Sau đây là một số tùy chọn kiểm tra loại tệp khác mà lệnh 'test' cung cấp:
Câu hỏi 4. Lệnh test xử lý liên kết tượng trưng như thế nào?
Lệnh test hủy tham chiếu liên kết tượng trưng, mặc dù có một vài ngoại lệ. Sau đây là nội dung trang hướng dẫn về điều này:
Mã:
Ngoại trừ -h và -L, tất cả các bài kiểm tra liên quan đến FILE đều hủy tham chiếu liên kết tượng trưng.