Greg's Wiki'nin Dash için bash betiklerini uyarlama konusunda bir çok 'bashisms' işaret eden bir yazı var - standart olmayan ancak bash'ın bir parçası olan ekstra özellikler. Bu bashism'lerden kaçınmak, betiğinizi farklı ortamlara daha dost hale getirmeye yardımcı olabilir. Bu özellikle bazı sorularınızı yanıtlar. Örneğin, evet, farklı (örneğin ==) operatörler var , ancak tüm ortamlarda çalışması gereken standart bir Posix seti var.
Daha ayrıntılı bir okuma için, tüm mermilerin uyması gereken Posix standardına göz atabilirsiniz . Özellikle, "Shell & Utilities" bölümü.
Kabuk farklılıklarından daha zor bulduğum şey komut farklılıkları. Birçok Linux sisteminde GNU vardır find, ancak taşınabilir bir komut dosyası yazıyorsanız, kendi başınıza güvenmeyin man find, çünkü BSD ile findfarklı bir özellik kümesine sahip çok sayıda sistem var . Meşgul kutusu için komut dosyaları yazıyorsanız, tamamen farklı ncs içeren farklı sürümler olduğunu göreceksiniz . Bunlar bir senaryoyu farklı ortamlara dağıtırken beni her zaman yakalayan şeyler.
İyi kabuk komut dosyası uygulamaları hakkında ek okuma için, David Pashley'in blogunda da iyi bir kaynak vardır: Sağlam Bash Kabuk Komut Dosyaları Yazma
Ayrıca, Gilles'in bu sitedeki cevaplarını ve yorumlarını okuduğunuzdan emin olun . Taşınabilir kod kullandığınızdan emin olmak için birçok ipucu var.