Jika ini skrip, panggil saja skrip tersebut sebagai
bash scriptname.sh
Tidak perlu mengubah tautan sama sekali.
Untuk file executable yang bisa dieksekusi, Anda bisa menggunakan chroot route:
mkdir rootfs
cp -a /usr rootfs/
cp -a /lib rootfs/
cp -a /lib64 rootfs/
cp /bin/bash rootfs/bin/sh
cp yourprogram rootfs/
sudo chroot rootfs sh
Dan kemudian jalankan program Anda atau sudo chroot rootfs /yourprogram
Namun, dalam praktiknya tidak ada alasan mengapa Anda tidak dapat menggunakan /bin/bash
sebagai symlink /bin/sh
. Bahkan, sebelum versi 6.10 Ubuntu digunakan /bin/bash
sebagai /bin/sh
, dan kemudian mereka beralih karena /bin/sh
menjadi lebih cepat, implementasi lebih ramping dari POSIX /bin/sh
(yaitu, mematuhi standar POSIX untuk bagaimana utilitas sistem operasi dan sistem operasi Unix-like dan OS harus berperilaku dan mengimplementasikan beberapa internal mereka), dan karena alasan portabilitas. Saya sangat merekomendasikan membaca jawaban Gilles juga untuk catatan sejarah tentang bagaimana hal itu /bin/dash
terjadi. Adapun kompatibilitas, skrip yang ditulis untuk dash
menggunakan fitur POSIX akan berjalan dengan bash
menjadi shell default baik-baik saja. Biasanya, sebaliknya yang menyebabkan masalah -bash
memiliki fitur yang tidak diperlukan oleh /bin/sh
, seperti <<<
sintaks atau array.
Selain itu, perintah yang dimaksud mungkin ditulis dengan RHEL atau CentOS dalam pikiran, yang memang digunakan /bin/bash
sebagai symlink /bin/sh
, menyarankan dua hal: mereka mungkin menargetkan OS tertentu dan tidak mematuhi prinsip-prinsip POSIX. Dalam hal ini, itu juga merupakan ide yang baik untuk memeriksa hal-hal lain yang diperlukan oleh perintah, karena jika itu benar-benar ditulis dengan OS lain dalam pikiran, Anda mungkin mengalami lebih banyak masalah daripada hanya menghubungkan kembali /bin/sh
.