GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menguji Kepatuhan Posix Dari Skrip Shell?

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!


Linux
  1. Bagaimana Cara Membuat Lingkungan Shell yang Bersih Untuk Penggunaan Sementara?

  2. Cara menjalankan skrip Python dari shell

  3. Cara menggemakan Baris Baru di Bash Shell Script

  1. Bagaimana cara membuat paket pengujian Travis CI untuk Linux, OS X, Windows?

  2. Bagaimana cara menginstal/membuat permintaan khusus untuk cangkang ikan?

  3. Bagaimana Linux menangani skrip shell?

  1. Cara menggunakan input dalam skrip shell Anda

  2. Apakah Ada Konvensi Penamaan Untuk Variabel Dalam Skrip Shell?

  3. Bagaimana Menguji Shell Apa yang Saya Gunakan Di Terminal?