Bu sorunun amacı, belirli bir bilgisayar problemini çözmemek, merakı cevaplamaktır. Soru şudur: POSIX zorunlu yardımcı programlar neden genellikle kabuk uygulamalarına dahil edilmemiştir?
Örneğin, temelde birkaç küçük metin dosyasını okuyan ve düzgün bir şekilde biçimlendirildiğini kontrol eden bir komut dosyası var, ancak makinemde önemli miktarda dize işleminden dolayı çalıştırılması 27 saniye sürüyor. Bu dize manipülasyonu çeşitli yardımcı programları çağırarak binlerce yeni işlemler yapar, bu nedenle yavaşlık. Ben araçlardan bazıları yani inşa olsaydı bu oldukça eminim grep
, sed
, cut
, tr
, ve expr
ardından komut bir saniye içinde aday olacağını ya da daha az (C deneyimlerime dayanarak).
Bu araçların oluşturulmasının, kabuk betiğindeki bir çözümün kabul edilebilir bir performansa sahip olup olmadığı arasındaki farkı yaratacağı birçok durum olacak gibi görünüyor.
Açıkçası, bu araçları yerleşik hale getirmemek için seçilmesinin bir nedeni var. Belki de bir sistemin bir yardımcı program sürümüne sahip olmak, bu yardımcı programın çeşitli mermiler tarafından kullanılmakta olan eşitsiz versiyonlarının kullanılmasını önler. Gerçekten çok fazla yeni süreç yaratmanın temel yükünü tutmak için başka nedenler düşünemiyorum ve POSIX, her biri POSIX oldukları sürece, farklı uygulamalara sahip olmanın bir sorun gibi görünmediği yararlar hakkında yeterince tanımlıyor Uysal. En azından bu kadar çok sürecin olmayışındaki sorun kadar büyük değil.
printf
, vb.) Mermi yeterince yararlı oldukları zaman kabuklara dahil edilmiştir.
awk
Eğer aksi kullanarak uygulamak olabileceğini komut uygulamak için (çok hızlı olduğunu) POSIX'deki zorunlu aracıdır ve özellikle de uygundur sed
, cut
, tr
, grep
, ve expr
bir kabuk komut dosyası içinde.