test
là một vỏ được tích hợp sẵn (rõ ràng) kiểm tra một số điều kiện nhất định. Một số shell cũ cần một lệnh đặc biệt. Vì vậy, bạn cũng sẽ tìm thấy một chương trình tại /usr/bin/test
.
[
cũng là một chương trình để kiểm tra một số điều kiện. Phần mềm này cũng cần một khung đóng và bạn có thể tìm thấy nó tại /usr/bin/[
.
[[…]]
là một thay thế cho test
và [
. Nó được phát triển cho vỏ Korn ( ksh
). Nhưng bạn cũng tìm thấy nó trong các phiên bản Bash lớn hơn 2 và trong Z Shell. Dấu ngoặc kép có một số tính năng tiện lợi:
- Shell không tách từ hoặc mở rộng tên tệp.
- Bạn không cần trích dẫn.
- Thay vì
-a
(AND) hoặc -o
(OR), bạn có thể sử dụng &&
hoặc ||
.
- Có
=
thể làm nhiều hơn nữa.
((…))
tương đương với let
. Vì vậy, về cơ bản ((expression))
là giống như let "expression"
. Tuy nhiên với let
bạn có thể sử dụng nhiều hơn một biểu thức, nhưng dấu ngoặc kép chỉ cho phép một biểu thức.
$((…))
(và cũng $[…]
) làm một số tính toán. Bạn shell cố gắng tính toán biểu thức bên trong dấu ngoặc nhọn và thay thế biểu thức bằng kết quả. Vì vậy, echo $((1+1))
dẫn đến echo 2
. Vì vậy, vỏ của bạn in số 2.
Mỗi khi bạn muốn so sánh hai số, bạn nên sử dụng tùy chọn với dấu gạch ngang và hai chữ cái ( -ge
, -lt
v.v.). Nếu bạn muốn so sánh chuỗi bạn nên sử dụng =
hoặc !=
.
Câu hỏi của bạn liên quan đến việc trốn thoát là khá khó để trả lời. Bởi vì nó phụ thuộc vào phần mềm bạn sử dụng bên cạnh vỏ. Vì vậy, tức là grep
và grep -E
cần thoát khác nhau. Đây cũng là trường hợp với sed
, awk
và những người khác. Vì vậy, lựa chọn tốt nhất là có một cái nhìn vào trang web. Sau một thời gian bạn quen và biết khi nào nên sử dụng thoát.