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 envlệ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 bashngườ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/envnên hoạt động trên bất kỳ hệ thống hiện đại hợp lý nào, vì envlà trong /usr/binhoặ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( bashlà /data/data/com.termux/files/usr/bin/bash) - nhưng nó có xử lý đặc biệt để hỗ trợ #!/bin/bash.
/usr/local/bin/bashtrên OpenBSD.