Mempertimbangkan bahwa POSIX adalah hal yang paling dekat dengan standar umum di antara semua unice, saya tertarik untuk mengetahui apakah ada shell yang mendukungnya secara eksklusif. Meskipun sebagian besar shell modern memberikan dukungan untuk POSIX (dan akan menjalankan skrip yang sesuai dengan POSIX tanpa masalah), shell tersebut tidak berfungsi dengan baik dalam menunjukkan fitur yang tidak sesuai.
Apakah ada shell yang mengimplementasikan POSIX dan POSIX saja, sedemikian rupa sehingga akan menimbulkan kesalahan untuk fitur yang tidak sesuai?
EDIT Saya ingin mengklarifikasi bahwa saya tidak meminta tip umum untuk menulis skrip shell portabel. Pertanyaan terkait yang disebutkan dalam komentar sudah membahas ini. Saya memikirkan pertanyaan ini ketika saya mengetahui bahwa bash
memiliki --posix
opsi tetapi hanya untuk mengetahui bahwa itu hanya memengaruhi beberapa perilaku inisialisasi yang tidak persis seperti yang saya cari.
Jawaban yang Diterima:
Sayangnya, 'portabel' biasanya merupakan persyaratan yang lebih kuat daripada 'sesuai dengan POSIX' untuk skrip shell. Artinya, menulis sesuatu yang berjalan pada shell POSIX tidak terlalu sulit, tetapi menjalankannya pada shell dunia nyata lebih sulit.
Anda dapat memulai dengan menginstal setiap shell di manajer paket Anda, khususnya posh
debian terdengar seperti yang Anda inginkan (Shell Biasa yang Sesuai dengan Kebijakan). Kebijakan Debian adalah POSIX dengan beberapa pengecualian (echo -n
ditentukan, local
…).
Di luar itu, pengujian harus mencakup beberapa shell (/bin/sh khususnya) pada berbagai platform. Saya menguji Solaris (/bin/sh dan xpg4/sh), dan BSD. AIX dan HP-UX sangat sesuai dan tidak menimbulkan masalah. bash adalah dunia kecilnya sendiri.
Saya akan merekomendasikan panduan Autoconf untuk shell portabel, yang benar-benar brilian dan menghemat banyak waktu. Potongan besar itu sudah usang, tapi tidak apa-apa; lewati saja TruUnix dan Ultrix dan seterusnya jika Anda tidak peduli!