Không đồng ý với các câu trả lời khác, có một quy ước chung là sử dụng .sh
phần mở rộng cho các tập lệnh shell - nhưng nó không phải là một quy ước hữu ích. Tốt hơn là không sử dụng tiện ích mở rộng nào cả. Lợi thế của việc có thể nói rằng đó foo.sh
là một tập lệnh shell vì tên của nó rất nhỏ và bạn phải trả tiền cho nó nếu không có tính linh hoạt.
Để thực thi một tập lệnh bash, nó cần có một dòng shebang ở trên cùng:
#!/bin/bash
và sử dụng chmod +x
lệnh để hệ thống nhận dạng nó là một tệp thực thi. Sau đó, nó cần được cài đặt trong một trong các thư mục được liệt kê trong của bạn $PATH
. Nếu tập lệnh được gọi foo
, bạn có thể thực thi nó từ dấu nhắc trình bao bằng cách nhập foo
. Hoặc nếu nó nằm trong thư mục hiện tại (phổ biến cho các tập lệnh tạm thời), bạn có thể nhập ./foo
.
Cả shell và hệ điều hành đều không chú ý đến phần mở rộng của tên tệp. Nó chỉ là một phần của cái tên. Và bằng cách không cung cấp cho nó một tiện ích mở rộng đặc biệt, bạn đảm bảo rằng bất kỳ ai (người dùng hoặc một tập lệnh khác) sử dụng nó đều không phải quan tâm đến cách nó được triển khai, cho dù đó là tập lệnh shell (sh, bash, csh hay bất cứ thứ gì) , một tập lệnh Perl, Python hoặc Awk hoặc một tệp thực thi nhị phân. Hệ thống được thiết kế đặc biệt để có thể gọi một tập lệnh được thông dịch hoặc một tệp thực thi nhị phân mà không cần biết hoặc quan tâm đến cách nó được triển khai.
Các hệ thống giống UNIX bắt đầu với giao diện dòng lệnh hoàn toàn là văn bản. Các GUI như KDE và Gnome đã được thêm vào sau đó. Trong hệ thống máy tính để bàn GUI, bạn thường có thể chạy một chương trình (một lần nữa, cho dù đó là tập lệnh hay tệp thực thi nhị phân) bằng cách nhấp đúp vào biểu tượng đề cập đến nó. Thông thường, điều này loại bỏ bất kỳ đầu ra nào mà chương trình có thể in ra và không cho phép bạn chuyển các đối số dòng lệnh; nó kém linh hoạt hơn nhiều so với chạy nó từ một dấu nhắc trình bao. Nhưng đối với một số chương trình (chủ yếu là ứng dụng GUI), nó có thể thuận tiện hơn.
Tập lệnh Shell tốt nhất nên học từ dòng lệnh, không phải từ GUI.
(Một số công cụ làm chú ý đến phần mở rộng tập tin Ví dụ, trình biên dịch thường sử dụng phần mở rộng để xác định ngôn ngữ mã được viết bằng:. .c
Cho C, .cpp
. Cho c ++ vv Công ước này không áp dụng cho các file thực thi)
Hãy nhớ rằng UNIX (và các hệ thống giống UNIX) không phải là Windows. MS Windows thường sử dụng phần mở rộng của tệp để xác định cách mở / thực thi nó. Các tệp thực thi nhị phân cần có .exe
phần mở rộng. Nếu bạn đã cài đặt trình bao giống UNIX trong Windows, bạn có thể định cấu hình Windows để nhận dạng .sh
tiện ích mở rộng dưới dạng tập lệnh trình bao và sử dụng trình bao để mở nó; Windows không có #!
quy ước.
bash myscript