Tôi khuyên bạn nên sử dụng:
#!/bin/bash
Nó không phải là 100% di động (một số hệ thống đặt bash
ở một vị trí khác /bin
), nhưng thực tế là rất nhiều tập lệnh hiện có sử dụng #!/bin/bash
áp lực các hệ điều hành khác nhau để tạo ra /bin/bash
ít nhất một liên kết tượng trưng đến vị trí chính.
Sự thay thế của:
#!/usr/bin/env bash
đã được đề xuất - nhưng không có gì đảm bảo rằng env
lệnh được đưa vào /usr/bin
(và tôi đã sử dụng các hệ thống không có). Hơn nữa, biểu mẫu này sẽ sử dụng phiên bản đầu tiên của bash
người dùng hiện tại $PATH
, đây có thể không phải là phiên bản phù hợp của bash shell.
(Nhưng /usr/bin/env
nên hoạt động trên bất kỳ hệ thống hiện đại hợp lý nào, vì env
là trong /usr/bin
hoặc vì hệ thống làm gì đó để nó hoạt động. Hệ thống tôi đã đề cập ở trên là SunOS 4, có lẽ tôi đã không sử dụng trong khoảng 25 năm.)
Nếu bạn cần một tập lệnh để chạy trên một hệ thống không có /bin/bash
, bạn có thể sửa đổi tập lệnh để trỏ đến vị trí chính xác (điều đó thừa nhận là bất tiện).
Tôi đã thảo luận về sự đánh đổi sâu hơn trong câu trả lời của tôi cho câu hỏi này .
Một bản cập nhật hơi khó hiểu: Một hệ thống tôi sử dụng, Termux , một lớp giống như máy tính để bàn chạy trên Android, không có /bin/bash
( bash
là /data/data/com.termux/files/usr/bin/bash
) - nhưng nó có xử lý đặc biệt để hỗ trợ #!/bin/bash
.
/usr/local/bin/bash
trên OpenBSD.