Từ sự khác biệt giữa bash và sh :
Trả lời câu hỏi: Nếu bạn có
/bin/sh
liên kết đến bash, thì bash sẽ không hoạt động giống như khi được gọi như/bin/sh
khi nó được gọi là/bin/bash
. Khi được gọi làsh
, nó sẽ tự giới hạn ở hầu hết tuân thủ POSIX cộng với một bộ tiện ích mở rộng hạn chế.
Điều đó có nghĩa là bất cứ khi nào tôi bắt gặp một tập lệnh shell trong Linux với shebang to sh : #!/bin/sh
, ngay cả khi trên bản phân phối đó, bin/sh
là một liên kết tượng trưng đến một shell khác, như dash hoặc bash, nó phải tương thích 100% với shell bourne, vì nó giới hạn bản thân trong một bộ mở rộng giới hạn? Vì vậy, tôi có thể thực hiện chúng trong FreeBSD? Có ngoại lệ cho điều đó? Hoặc tôi nên an toàn để cho rằng nó sẽ hoạt động?
Vì vậy, nếu trên một bản phân phối, bin/sh
là một liên kết tượng trưng bin/bash
và sử dụng tập lệnh #!/bin/sh
và tập lệnh chứa bashism, nó sẽ không chạy, vì bash sẽ thích ở chế độ sh?