Làm thế nào tôi có thể tìm hiểu xem một kịch bản được viết bằng bash
hoặc sh
?
Dòng đầu tiên của tập lệnh không hữu ích ở đây, vì trên Linux, tập lệnh bash có dòng này:
#!bin/sh
Trên thực tế, có nhiều bản phân phối /bin/sh
là bash (có thể /bin/sh
là một liên kết đến /bin/bash
trong các bản phân phối đó), chứ không phải Bourne Shell. Vì vậy, nếu tôi cố chạy một tập lệnh được viết bằng bash, ví dụ FreeBSD, kết quả không được xác định, vì /bin/sh
trong FreeBSD là Bourne Shell, và không bash.
Có cách nào dễ dàng để xác định nếu một tập lệnh là bash hoặc sh?
Có một số điều đặc biệt trong cú pháp?