Contact Info

Chicago 12, Melborne City, USA

+88 01682648101

[email protected]

Get Started
  1. Home
  2. Knowledge Base
  3. Linux
  4. Trình Thông Dịch Shebang

Trình Thông Dịch Shebang

Nếu bạn đang học viết Bash script bằng cách đọc mã nguồn của người khác, bạn có thể đã chú ý rằng dòng đầu tiên trong các script bắt đầu với các ký tự #! và đường dẫn đến trình thông dịch Bash.

Dãy ký tự này (#!) được gọi là shebang và được sử dụng để thông báo cho hệ điều hành biết sử dụng trình thông dịch nào để phân tích cú pháp phần còn lại của tệp.

Hướng Dẫn Trình Thông Dịch Shebang

Hướng dẫn trình thông dịch Shebang có dạng sau:

#!trình_thông_dịch [các_tham_số]
  • Hướng dẫn này phải là dòng đầu tiên trong script.
  • Hướng dẫn phải bắt đầu bằng shebang #!.
  • Dấu trắng sau các ký tự shebang là tùy chọn.
  • Trình thông dịch là đường dẫn đầy đủ đến một tệp nhị phân (ví dụ: /bin/sh, /bin/bash).
  • Các tham số của trình thông dịch là tùy chọn.

Ví dụ:

#!/bin/bash - Sử dụng bash để phân tích tệp.
#!/usr/bin/env perl - Sử dụng lệnh env để tìm đường dẫn đến trình biên dịch perl.
#!/usr/bin/python - Thực thi tệp bằng trình thông dịch python.

Sử Dụng Shebang Trong Script Bash

Nếu không có shebang được chỉ định và người dùng chạy script Bash sử dụng Shell khác, script sẽ được phân tích bởi bất kỳ trình thông dịch mặc định nào được sử dụng bởi Shell đó. Ví dụ, trình thông dịch mặc định cho bash là bash và cho zsh là sh. Để đảm bảo rằng script của bạn luôn được phân tích với Bash, bạn cần phải chỉ định đường dẫn thực thi bằng shebang.

Có hai cách để sử dụng hướng dẫn Shebang và thiết lập trình thông dịch.

Sử dụng đường dẫn tuyệt đối đến tệp nhị phân bash:

#!/bin/bash

Sử dụng tiện ích env:

#!/usr/bin/env bash

Ưu điểm của cách tiếp cận thứ hai là nó sẽ tìm kiếm tệp thực thi bash trong biến môi trường $PATH của người dùng. Nếu có nhiều hơn một đường dẫn đến bash, đường dẫn đầu tiên sẽ được sử dụng bởi script.

Khi sử dụng lựa chọn thứ nhất để thêm một tùy chọn vào shell Bash, hãy chuyển nó cho trình thông dịch. Ví dụ, để chạy script trong chế độ gỡ lỗi, bạn sẽ sử dụng #!/bin/bash -x. Nếu bạn sử dụng phương pháp env thì bạn cần sử dụng set để khai báo tùy chọn. Để kích hoạt chế độ gỡ lỗi, bạn sẽ thêm set -x sau dòng shebang.

Ví dụ về Script

Hãy tạo một script đơn giản sử dụng shebang để in ra “Hello, World”. Mở trình soạn thảo văn bản của bạn và dán đoạn mã sau:

nano hello_world

hello_world:

#!/bin/bash

echo "Hello, World"

Để có thể chạy script mà không cần chỉ định trình thông dịch từ dòng lệnh, bạn cần phải làm cho tệp có thể thực thi:

chmod +x hello_world

Bây giờ nếu bạn có thể chạy script bằng cách gõ ./ theo sau là tên của script:

./hello_world
Hello, World

Ghi đè Shebang

Nếu vì một lý do nào đó bạn muốn ghi đè trình thông dịch được thiết lập trong dòng Shebang, bạn cần chạy script bằng cách chỉ định rõ Shell mong muốn.

Ví dụ, để chạy một script có #!/bin/sh được chỉ định trong dòng Shebang bằng shell bash, bạn sẽ gõ:

bash hello_world

Lưu Ý, không phải là một ý tưởng tốt khi ghi đè trình thông dịch Shell vì điều này có thể dẫn đến hành vi không mong muốn của script.

Kết Luận

Đến đây bạn đã có một hiểu biết tốt về Shebang là gì và cách sử dụng nó trong script Bash của bạn.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, đừng ngần ngại để lại một bình luận.

Was this article helpful?

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *