Bagaimana saya bisa mengetahui apakah suatu skrip ditulis dalam bash
atau 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/sh
bash (mungkin /bin/sh
merupakan tautan ke /bin/bash
dalam distribusi itu), dan bukan Bourne Shell. Jadi jika saya mencoba menjalankan skrip yang ditulis dalam bash in, misalnya, FreeBSD, hasilnya tidak didefinisikan, karena /bin/sh
di 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?
bash
shell
shell-script
pengguna1115057
sumber
sumber
Jawaban:
Sebenarnya garis shebang berarti sesuatu karena beberapa distribusi seperti Debian tidak digunakan
bash
untuk/bin/sh
tetapidash
.Solusi paling sederhana untuk menentukan apakah skrip shell adalah bash adalah dengan menggunakan
checkbashism
- lihatman checkbashisms
detailnya.checkbashisms
harus dikemas dengan distribusi yang berbeda, untuk Debian ada dalamdevscripts
paket - Fedora didevscripts-minimal
(dulurpmdevtools
) dan OpenSuSe dirpmlint-mini
sumber