Bourne kabuğu diline ait tüm varyasyonlar Perl, Python, Ruby, node.js ve hatta (tartışmalı) Tcl gibi modern betik dillerine kıyasla nesnel olarak korkunç. Hatta biraz karmaşık bir şey yapmak zorunda kalırsanız, yukarıdakilerden birini kabuk betiği yerine kullanırsanız uzun vadede daha mutlu olursunuz.
İlk ve tek kabuk dili hala o yeni dilleri üzerinde olmasıdır avantaj şey kendisi çağıran
/bin/shiddia Unix olmak herhangi bir şeyle ilgili varolmaya garantilidir. Ancak, bir şey POSIX uyumlu bile olmayabilir; eski patentli Unix'lerin birçoğu, Unix95'in (evet, Unix95, yirmi yıl önce ve saymanın) talep ettiği değişikliklerden önce
/bin/sh , varsayılan PATH'taki uygulamaları ve uygulanan dili dondurdu . Orada Unix95 bir dizi olabilir veya eğer şanslıysanız bile POSIX.1-2001, bir dizindeki araçları değil varsayılan PATH üzerinde (örneğin ) ama onlar varoldukları için garanti edilmez.
/usr/xpg4/bin
Bununla birlikte, Perl'in temellerinin keyfi seçilmiş bir Unix kurulumunda Bash'inkinden daha fazla bulunması muhtemeldir . (Yani "Perl temelleri" ile
/usr/bin/perlvar ve olan bazı Perl 5, muhtemelen oldukça eski, sürümü ve sen şanslı eğer tercüman o sürümü ile birlikte gelen bu modül seti de mevcuttur.)
Bu nedenle:
Her yerde çalışmak zorunda olan ve Unix olmasını gerektiren ("configure" komut dosyası gibi) bir şeyler yazıyorsanız, kullanmanız
#! /bin/shve herhangi bir uzantı kullanmamanız gerekir. Bugünlerde bu durumda POSIX.1-2001 uyumlu bir kabuk yazacaktım, ancak birisi paslı demir için destek isterse POSIXizm'i düzeltmeye hazır olurdum.
Eğer varsa Ama değil her yerde çalışıyor olmalıdır birşeyler yazmayı, ardından an hiç bir Bashism kullanmak için cazip olan, durdurmak gerekir ve bunun yerine daha iyi bir kodlama dilinde şeyin tamamını yeniden yazmak. Gelecekteki benliğiniz size teşekkür edecek.
(Ne zaman almaktadır ? İlk sipariş için Bash uzantıları kullanılması uygun: asla ikinci sırayla için: sadece Bash interaktif bir ortam uzatmak - örneğin akıllı sekme tamamlama ve fantezi istemleri sağlamaktır..)