Mặc dù đó là một xấp xỉ đầu tiên công bằng khi người ta bắt đầu học những điều cơ bản của việc sử dụng shell, ở cấp độ "đây là cách người ta chạy một chương trình" và "đây là cách người ta chạy nhiều chương trình lần lượt trên một dòng" , nó không thực sự đúng.
Khó nắm bắt hơn đối với người mới bắt đầu nhưng giải thích chính xác hơn là ngôn ngữ shell là ngôn ngữ máy tính . Nó có một cú pháp . Cú pháp đó bao gồm các yếu tố từ vựng khác nhau bao gồm (trong số những thứ khác) dòng mới, toán tử, từ và từ dành riêng.
if
, then
, else
, Và fi
đều là những từ dành riêng . Chúng có ý nghĩa đặc biệt khi phân tích cú pháp đầu vào mà người ta đưa ra cho một vỏ, theo ngữ pháp của nó . Tương tự, ;
là một toán tử phân tách .
Do đó, đầu vào trong ngôn ngữ shell được lấy toàn bộ, một chương trình máy tính được diễn giải bởi một chương trình khác, một trình thông dịch , shell. Phần ngữ pháp cá nhân của nó không phải là chương trình. Ngôn ngữ shell là một cách chỉ định các chương trình (khác) để shell chạy.
[
không phải là một yếu tố từ vựng đặc biệt trong ngữ pháp shell như toán tử. Đó là một từ thông thường , đặt tên một chương trình như vậy được đặt tên [
. Nhiều vỏ có một built-in phiên bản của chương trình này, kết hợp vào mã của chương trình bao chính nó, nhưng bạn cũng có thể tìm thấy một bên ngoài chương trình theo tên này ở đâu đó như /bin/[
hoặc /usr/bin/[
, mà các chương trình khác ngoài vỏ có thể gọi. Tương tự, ]
không phải là một yếu tố từ vựng vỏ đặc biệt. Đó là một từ thông thường, trở thành một đối số cho [
chương trình. Các [
chương trình đòi hỏi tranh luận cuối cùng của nó, khi nó được thực thi, được ]
, mà nó tiến hành sau đó bỏ qua.
Một chương trình tương tự có tên trong câu hỏi của bạn là echo
. Một lần nữa, hầu hết các shell đều có phiên bản tích hợp của chương trình này. Nhưng một lần nữa, cũng có một phiên bản bên ngoài của chương trình, ở đâu đó như /bin/echo
hoặc /usr/bin/echo
, cho các chương trình không phải là shell để gọi.
Một chương trình thứ ba có tên trong câu hỏi của bạn là ls
. Shell thường không có các phiên bản dựng sẵn của chương trình này và nó là một chương trình bên ngoài, được tìm thấy ở đâu đó như /bin/ls
hoặc /usr/bin/ls
.
Đối với shell Bourne Again, bạn có thể đọc thêm về điều này trong Tính năng Shell cơ bản của tài liệu thông tin shell GNU Bourne Again. Các vỏ khác có ngữ pháp khác nhau, tự nhiên. Các đơn Unix Specification mô tả một cú pháp mà tất cả vỏ POSIX-tuân thủ QTI (trong chế độ POSIX-tuân thủ QTI của họ) có nghĩa vụ phải tuân theo.
đọc thêm
- " Ngữ pháp Shell ". Ngôn ngữ lệnh Shell . Thông số kỹ thuật cơ sở Vấn đề 7. Nhóm mở. IEEE 1003.1-2008. SỐ 1937218812.
test
. Tiện ích . Thông số kỹ thuật cơ sở Vấn đề 7. Nhóm mở. IEEE 1003.1-2008. SỐ 1937218812.
- " Ngữ pháp Shell ". Hướng dẫn sử dụng Z Shell . phiên bản 5.3.1. 2017.