Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Mục lục:

Anonim

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

Chỉ thị phiên dịch Shebang

Lệnh phiên dịch Shebang có dạng sau:

#!interpreter

  • Lệnh phải là dòng đầu tiên trong tập lệnh. Lệnh này phải bắt đầu bằng shebang #! Khoảng trắng sau các ký tự shebang là tùy chọn.Interpreter là đường dẫn đầy đủ đến tệp nhị phân (ví dụ: /bin/sh , /bin/bash ). Đối sốInterpreter 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 tệp thực thi perl . #!/usr/bin/python Thực thi tệp bằng tệp nhị phân python .

Sử dụng Shebang trong Bash Script

Nếu một shebang không được chỉ định và người dùng đang chạy tập lệnh Bash đang sử dụng Shell khác, tập lệnh sẽ được phân tích cú pháp 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 bash và cho zsh sh . Để đảm bảo rằng tập lệnh của bạn sẽ luôn được diễn giải với Bash, bạn sẽ cần chỉ định đường dẫn thực thi bằng shebang.

Có hai cách để sử dụng chỉ thị Shebang và đặt trình thông dịch.

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

    #!/bin/bash

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

    #!/usr/bin/env bash

Ưu điểm của việc sử dụng cách tiếp cận thứ hai là nó sẽ tìm kiếm bash thực thi 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 tập lệnh.

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

Tập lệnh mẫu

Hãy tạo một tập lệnh đơn giản bằng shebang sẽ in ra Hello Hello, World World. Mở trình soạn thảo văn bản của bạn và dán dòng sau:

nano hello_world Chào thế giới

#!/bin/bash echo "Hello, World"

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

chmod +x hello_world

Bây giờ nếu bạn có thể chạy tập lệnh bằng cách nhập ./ theo sau là tên tập lệnh:

./hello_world

Hello, World

Ghi đè lên Shebang

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

Ví dụ: để chạy tập lệnh có #!/bin/sh được chỉ định trong dòng Shebang bằng cách sử dụng bash bạn sẽ nhập:

bash hello_world

Xin lưu ý, không nên ghi đè trình thông dịch shell vì nó có thể dẫn đến hành vi không mong muốn của tập lệnh.

Phần kết luận

Bây giờ bạn nên hiểu rõ về Shebang là gì và cách sử dụng nó trong các tập lệnh Bash của bạn.

thiết bị đầu cuối bash