Bạn có thể đã thấy một dòng kỳ lạ bắt đầu bằng một “#!” ở phần đầu của các tập lệnh Linux và tự hỏi đó là gì. Đó được gọi là “dòng shebang” và nó cho phép Linux biết trình thông dịch nào sẽ sử dụng. Đây là cách nó hoạt động.
Dòng Shebang là gì?
Một hệ thống Linux có nhiều tập lệnh tự động hóa các tác vụ quản lý khác nhau. Người dùng và quản trị viên cũng viết tập lệnh của riêng họ.
Bất chấp sự gia tăng của các ngôn ngữ kịch bản lệnh phổ biến như Ruby hay Python, các bản phân phối Linux cũng thường được trang bị một số trình bao. Bash là một tiêu chuẩn thực tế trên các bản phân phối chính thống, nhưng có rất nhiều shell có sẵn.
Có Zsh, cũng như C shell, Korn Shell và tcsh. Và cá. Và sau đó là vỏ Bourne cũ tốt. Ngoại trừ việc nó thực sự là Bash được liên kết với sh.
Vì vậy, không chỉ có các ngôn ngữ kịch bản khác nhau, mà còn có các trình bao khác nhau. Các shell này có cú pháp và lệnh khác nhau. Làm thế nào để bạn nói với Linux nên sử dụng trình thông dịch nào?
Đây là những gì dòng shebang làm. Đó là một chuỗi ký tự bắt đầu diễn giải các tập lệnh. Nó lấy tên từ hai thuật ngữ tiếng lóng cho “#” Và “!” ký tự. Cái trước được gọi là “hash”. Bạn có thể biết nó từ thuật ngữ “hashtag”.
Các “!” còn được gọi là tiếng nổ. Sự kết hợp của cả hai là một “shebang”, một cách chơi chữ, “the whole shebang.”
Cách Linux tìm ra trình thông dịch nào sẽ sử dụng
Bạn có thể nhận thấy rằng “#” ký tự cũng là một nhận xét trong nhiều ngôn ngữ. Hệ thống tránh xung đột như thế nào? Điều đó thật dễ dàng. Hầu hết các trình thông dịch ngôn ngữ chỉ cần bỏ qua”#” ký tự nếu chúng ở dòng đầu tiên.
Thay vào đó, hạt nhân sẽ xem xét dòng shebang và chuyển tập lệnh tới trình thông dịch thích hợp.
Đặt dòng Shebang trong tập lệnh của bạn
Nói cho kernel biết trình thông dịch nào sẽ chạy trong tập lệnh của bạn rất đơn giản. Chỉ cần đặt tên đường dẫn tuyệt đối của trình thông dịch mà bạn muốn chạy trong dòng Shebang, theo sau là bất kỳ tùy chọn nào.
Ví dụ: để chạy tập lệnh Bash:
#!/bin/bash
Cấp quyền thực thi tập lệnh của bạn bằng cách sử dụng chmod:
chmod +x script.sh
Bây giờ bạn có thể chạy tập lệnh của mình từ dòng lệnh.
Bây giờ bạn đã biết về Shebang Line
Bây giờ bạn đã biết cách hoạt động của dòng Shebang để chạy tập lệnh trong Linux. Các “#!” ký tự chỉ đơn giản là cho hạt nhân biết trình thông dịch nào sẽ chạy. Một trình thông dịch đi kèm với hầu hết các hệ thống Linux là Bash.
Bất chấp sự phổ biến của các ngôn ngữ script như Python, Bash vẫn hữu ích cho việc viết script để tự động hóa các tác vụ quản trị Linux. Thật dễ dàng để viết và chạy các tập lệnh Bash trên Linux.