Yazdığım çoğu kod PHP. Son zamanlarda kabuk komut dosyası öğrenmeye başladım. Karşılaştığım kaynakların ve öğreticilerin çoğu Bash'a özgüdür. Bazıları bashisms hakkında uyarır, bazıları ise uyarmaz. Burada çok fazla okudum ve Stack Overflow.
Ne zaman bir cevap bashisms kullanıyorsa , birileri kaçınılmaz olarak şunları söyleyecektir:
<Buraya bashizm ekle> kullanmamalısınız. Taşınabilir değil.
Bu, soru etiketlendiğinde bile olur bash. Bana göre, bir PHP programcısına PHP 4'te yeni bir kod kullanmamaları gerektiğini söylemek gibi, çünkü PHP 4 ile kullanılamaz. Windows üzerinde.
PHP yazarken, bir minimum gereksinimi seçin ve ileri uyumlu kod yazma . Geriye dönük hale getirme konusunda endişelenmiyorum .
Ben kullanırsanız #!/bin/bash
shebang olarak, neden bashisms kullanmamalısınız? Sadece nasıl bir bazı insanlar olduğu izlenimini almaya başladım bash sadece onun uğruna bashisms (cinas amaçlanan).
İnsanlar genellikle bash'nin birçok sistemdeki varsayılan kabuk olduğu gerçeğinden dolayı bash
ve shell
birbirinin yerine kullanılır . Bu yüzden kod bashisms kullandığını uyarmak için bir yorum ekleyerek anlayabiliyorum, ama onları kullanmak yanlış olduğu anlamını anlamıyorum .
Açıkçası, kesinlikle kişisel kullanım için bir senaryo yazıyorsam, istediğim dilde yazabilirim. Ama yazdığım kodların bazılarının başkaları için yararlı olabileceğini düşünmek istiyorum.
Göndermeden önce sorumun cevabını aramayı denedim. Ben yaklaşık birçok bilgi buldum nasıl test etmek taşınabilirlik için değil, hakkında bir şey bulamadık zaman önemli olduğunu bunu yapmak için.
Peki, taşınabilir komut dosyaları yazmak ne zaman önemlidir?
Örneğin,
- ne tür komut dosyaları olabildiğince taşınabilir olmalıdır?
- Bash yüklü olmayan sistemler ne kadar yaygındır?
- Sistemde Bash yüklüyse, find ve diğer yardımcı programların GNU sürümüne de sahip olacak mı?
bash
tek başına etiketlendiğinde, birisi "Taşınabilir değil, bashizmdir" der. Etiketli bir soruyu cevapladığımda C
, taşınabilir olup olmadığı umurumda Java
değil.
bash
Tıpkı GNU'ya özgü bir uzantıyı bazı yardımcı programlar için kullanıldığına işaret edeceğim gibi (soru Linux olarak etiketlenmiş olsa bile), taşınabilir değil, belirli bir özellik olduğunu belirtmenin her zaman iyi olduğunu hissediyorum . Hiç kimsenin "bu bir bashizmdir ve asla kullanmamalısınız" dediğini görmedim.