Cara mengetahui apakah skrip shell ditulis dalam bash atau sh


8

Bagaimana saya bisa mengetahui apakah suatu skrip ditulis dalam bashatau sh?

Baris pertama skrip tidak membantu di sini, karena di Linux, skrip bash memiliki baris ini: #!bin/sh

Sebenarnya, ada banyak distribusi di mana /bin/shbash (mungkin /bin/shmerupakan tautan ke /bin/bashdalam distribusi itu), dan bukan Bourne Shell. Jadi jika saya mencoba menjalankan skrip yang ditulis dalam bash in, misalnya, FreeBSD, hasilnya tidak didefinisikan, karena /bin/shdi FreeBSD adalah Bourne Shell, dan bukan bash.

Apakah ada cara mudah untuk mengidentifikasi apakah skrip bash atau sh?

Apakah ada beberapa hal khusus dalam sintaksis?


3
Lihat Bashisms di Wiki Greg ...
jasonwryan

Jawaban:


15

Sebenarnya garis shebang berarti sesuatu karena beberapa distribusi seperti Debian tidak digunakan bashuntuk /bin/shtetapi dash.

Solusi paling sederhana untuk menentukan apakah skrip shell adalah bash adalah dengan menggunakan checkbashism- lihat man checkbashismsdetailnya.

checkbashismsharus dikemas dengan distribusi yang berbeda, untuk Debian ada dalam devscriptspaket - Fedora di devscripts-minimal(dulu rpmdevtools) dan OpenSuSe dirpmlint-mini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.