Greg's Wiki memiliki posting tentang mengadaptasi skrip bash untuk Dash yang menunjukkan banyak 'bashism' - fitur tambahan yang tidak standar tetapi merupakan bagian dari bash. Menghindari bashisme tersebut dapat membantu membuat skrip Anda lebih ramah untuk lingkungan yang berbeda. Ini khususnya menjawab beberapa pertanyaan Anda. Sebagai contoh, ya, ada operator yang berbeda (seperti ==
), tetapi ada satu set Posix standar yang harus bekerja di semua lingkungan.
Untuk bacaan yang lebih teliti, Anda dapat memeriksa standar Posix , yang harus dipatuhi oleh semua cangkang. Khususnya, volume pada "Shell & Utilities".
Apa yang saya temukan lebih menantang daripada perbedaan shell adalah perbedaan perintah. Banyak sistem Linux memiliki GNU find
, tetapi jika Anda menulis skrip portabel, jangan bergantung pada Anda sendiri man find
, karena ada banyak sistem di luar sana dengan BSD find
, yang memiliki serangkaian fitur berbeda. Jika Anda menulis skrip untuk busybox, Anda akan menemukan ada beberapa versi dengan nc
s yang sama sekali berbeda . Itulah hal-hal yang selalu membuat saya ketika saya menggunakan skrip ke lingkungan yang berbeda.
Untuk membaca lebih lanjut tentang praktik skrip shell yang baik, ada juga sumber yang bagus di blog David Pashley: Menulis Skrip Bash Shell yang Kuat
Juga, pastikan Anda membaca jawaban dan komentar Gilles di situs ini. Dia memiliki banyak tips untuk memastikan Anda menggunakan kode portabel.