Capabilities Câu_lệnh_shell

Phím tắt

Tập lệnh shell có thể cung cấp một biến thể thuận tiện của lệnh hệ thống trong đó cài đặt môi trường đặc biệt, tùy chọn lệnh hoặc xử lý hậu kỳ tự động áp dụng, nhưng theo cách cho phép tập lệnh mới vẫn hoạt động như một lệnh Unix hoàn toàn bình thường.

Một ví dụ sẽ là tạo một phiên bản ls, lệnh liệt kê các tệp, đặt cho nó một tên lệnh ngắn hơn là l, thường được lưu trong thư mục bin của người dùng là / home / username / bin / l và một bộ mặc định của các tùy chọn lệnh được cung cấp trước.

#!/bin/shLC_COLLATE=C ls -FCas "$@"

Ở đây, dòng đầu tiên (shebang) cho biết trình thông dịch nào sẽ thực thi phần còn lại của tập lệnh và dòng thứ hai tạo một danh sách với các tùy chọn cho các chỉ báo định dạng tệp, cột, tất cả các tệp (không bỏ qua) và kích thước trong các khối. Các LC_COLLATE = C đặt trật tự đối chiếu mặc định để không gấp trường hợp trên và dưới với nhau, không intermix dotfiles với tên tập tin bình thường như một tác dụng phụ của phớt lờ dấu chấm trong tên (dotfiles thường chỉ được hiển thị nếu một tùy chọn như -a được sử dụng), và "$ @" làm cho bất kỳ tham số nào được cung cấp cho l chuyển qua dưới dạng tham số cho ls, do đó tất cả các tùy chọn thông thường và cú pháp khác được biết đến ls vẫn có thể được sử dụng.

Sau đó, người dùng có thể chỉ cần sử dụng l cho danh sách ngắn được sử dụng phổ biến nhất.

Một ví dụ khác về tập lệnh shell có thể được sử dụng làm phím tắt là in danh sách tất cả các tệp và thư mục trong một thư mục đã cho.

#!/bin/shclearls -al

Trong trường hợp này, tập lệnh shell sẽ bắt đầu với dòng bắt đầu bình thường là #! / Bin / sh. Theo đó, đoạn script thực thi lệnh xóa để xóa đầu cuối của tất cả văn bản trước khi đi đến dòng tiếp theo. Dòng sau cung cấp chức năng chính của tập lệnh. Lệnh ls -al liệt kê các tệp và thư mục trong thư mục mà tập lệnh đang được chạy. Các thuộc tính lệnh ls có thể được thay đổi để phản ánh nhu cầu của người dùng.Lưu ý: Nếu việc triển khai không có lệnh rõ ràng, hãy thử sử dụng lệnh clr thay thế.

#!/bin/shtail $(find. -iname *.sh)

Batch jobs

Các câu lệnh Shell cho phép một số lệnh sẽ được nhập thủ công tại giao diện dòng lệnh được thực thi tự động và không phải chờ người dùng kích hoạt từng giai đoạn của chuỗi. Ví dụ, trong một thư mục có ba tệp mã nguồn C, thay vì chạy thủ công bốn lệnh cần thiết để xây dựng chương trình cuối cùng từ chúng, thay vào đó, người ta có thể tạo tập lệnh shell C, ở đây có tên là build và giữ trong thư mục với chúng, mà sẽ tự động biên dịch chúng:

#!/bin/cshecho compiling...cc -c foo.ccc -c bar.ccc -c qux.ccc -o myprog foo.o bar.o qux.oecho done.

Câu lệnh sẽ cho phép người dùng lưu tệp đang được chỉnh sửa, tạm dừng trình chỉnh sửa và sau đó chỉ cần chạy ./build để tạo chương trình cập nhật, kiểm tra tệp và sau đó quay lại trình chỉnh sửa. Tuy nhiên, từ những năm 1980 trở đi, các kịch bản thuộc loại này đã được thay thế bằng các tiện ích như sản xuất chuyên dùng để xây dựng chương trình.

Tổng quát hóa

Các công việc hàng loạt đơn giản không phải là bất thường đối với các tác vụ bị cô lập, nhưng sử dụng các vòng lặp shell, kiểm tra và các biến cung cấp sự linh hoạt hơn nhiều cho người dùng. Tập lệnh Bash (Unix shell) để chuyển đổi hình ảnh JPEG thành hình ảnh PNG, trong đó tên hình ảnh được cung cấp trên dòng lệnh Command có thể thông qua ký tự đại diện, thay vì từng được liệt kê trong tập lệnh, có thể được tạo bằng tệp này, thường được lưu trong tệp này một tập tin như /home/username/bin/jpg2png

#!/bin/bashfor jpg; do                                  # use $jpg in place of each filename given, in turn    png="${jpg%.jpg}.png"                    # construct the PNG version of the filename by replacing .jpg with .png    echo converting "$jpg" ...               # output status info to the user running the script    if convert "$jpg" jpg.to.png ; then      # use the convert program (common in Linux) to create the PNG in a temp file        mv jpg.to.png "$png"                 # if it worked, rename the temporary PNG image to the correct name    else                                     # ...otherwise complain and exit from the script        echo 'jpg2png: error: failed output saved in "jpg.to.png".' >&2        exit 1    fi                                       # the end of the "if" test constructdone                                         # the end of the "for" loopecho all conversions successful              # tell the user the good newsexit 0

Lệnh jpg2png sau đó có thể được chạy trên toàn bộ thư mục chứa đầy hình ảnh JPEG chỉ với / home / username / bin / jpg2png * .jpg

Độ chính xác

Một tính năng chính của các kịch bản shell là việc gọi trình thông dịch của chúng được xử lý như một tính năng hệ điều hành cốt lõi. Vì vậy, thay vì trình bao của người dùng chỉ có thể thực thi các tập lệnh bằng ngôn ngữ của trình bao đó hoặc tập lệnh chỉ có lệnh phiên dịch của nó được xử lý chính xác nếu nó được chạy từ trình bao (cả hai đều là những hạn chế trong việc xử lý tập lệnh của trình bao Bourne ban đầu), shell script được thiết lập và thực thi bởi chính HĐH. Một tập lệnh shell hiện đại không chỉ nằm trên cùng một lệnh với các lệnh hệ thống, mà là nhiều lệnh hệ thống thực sự là các tập lệnh shell (hay nói chung hơn là các tập lệnh, vì một số trong số chúng không được giải thích bởi shell, mà thay vào đó là Perl, Python hoặc một số ngôn ngữ khác). Điều này mở rộng để trả về mã thoát như các tiện ích hệ thống khác để biểu thị thành công hay thất bại và cho phép chúng được gọi là các thành phần của các chương trình lớn hơn bất kể các công cụ lớn hơn đó được triển khai như thế nào.[1][2]

Giống như các lệnh hệ thống tiêu chuẩn, kịch bản shell cổ điển bỏ qua bất kỳ loại phần mở rộng tên tập tin trừ khi dự định sẽ được đọc vào một vỏ chạy thông qua một cơ chế đặc biệt cho mục đích này (chẳng hạn như sh ‘s ' ', hoặc csh‘nguồn s). . [3][4]

Lập trình

Nhiều shell hiện đại cũng cung cấp các tính năng khác nhau thường chỉ được tìm thấy trong các ngôn ngữ lập trình đa năng phức tạp hơn, chẳng hạn như cấu trúc luồng điều khiển, biến, nhận xét, mảng, chương trình con,... Với các loại tính năng có sẵn, có thể viết các ứng dụng hợp lý tinh vi như các tập lệnh shell. Tuy nhiên, chúng vẫn bị hạn chế bởi thực tế là hầu hết các ngôn ngữ shell đều có ít hoặc không hỗ trợ cho các hệ thống gõ dữ liệu, các lớp, luồng, toán phức tạp và các tính năng ngôn ngữ đầy đủ phổ biến khác, và nói chung cũng chậm hơn nhiều so với mã được biên dịch hoặc ngôn ngữ được dịch với tốc độ như một mục tiêu hiệu suất.

Các công cụ Unix tiêu chuẩn sed và awk cung cấp các khả năng bổ sung cho lập trình shell; Perl cũng có thể được nhúng trong các kịch bản shell như các ngôn ngữ kịch bản lệnh khác như Tcl. Perl và Tcl đi kèm với bộ công cụ đồ họa là tốt.

Liên quan

Câu lạc bộ Bóng đá Thể Công – Viettel Câu lạc bộ bóng đá Hà Nội (2016) Câu lạc bộ bóng đá LPBank Hoàng Anh Gia Lai Câu lạc bộ bóng đá Sông Lam Nghệ An Câu lạc bộ bóng đá Thép Xanh Nam Định Câu lạc bộ bóng đá Đông Á Thanh Hóa Câu lạc bộ bóng đá Hải Phòng Câu lạc bộ bóng đá Thành phố Hồ Chí Minh Câu lạc bộ bóng đá Công an Hà Nội (1956) Câu lạc bộ bóng đá MerryLand Quy Nhơn Bình Định

Tài liệu tham khảo

WikiPedia: Câu_lệnh_shell http://freebookcentre.net/UnixCategory/Free-Unix-S... http://www.faqs.org/docs/air/tsshell.html https://developer.apple.com/mac/library/documentat... https://books.google.com/books?id=9vCoCwAAQBAJ&pg=... https://books.google.com/books?id=J5nKVVg5YHAC https://books.google.com/books?id=Mpi7DQAAQBAJ&pg=... https://books.google.com/books?id=jO-iKwPRX0QC&pg=... https://books.google.com/books?id=tK4oIcnngiUC&pg=... https://books.google.com/books?id=zZYLAAAAQBAJ https://www.linux.com/articles/34658