[POS] davranışı tüm POSIX şikayet mermileri arasında tutarlı görünüyor. Burada kıpır kıpır oda ihtiyacını görmüyorum.
Yeterince derin görünmüyorsun.
1980'lerde bu mekanizma fiilen standardize edilmedi . Dennis Ritchie bunu uygulamasına rağmen, bu uygulama evrenin AT&T tarafında halka ulaşmamıştı. Etkin bir şekilde sadece halka açıktı ve BSD'de biliniyordu; çalıştırılabilir kabuk komut dosyalarıyla AT&T Unix'te bulunmaz. Dolayısıyla standardize etmek makul değildi. İşlerin durumu, bu çağdaş doco ile örneklenmiştir:
BSD ile başlayan dosyaların #! interpreter
doğrudan yürütülmesine izin verirken, SysV yalnızca a.out dosyalarının doğrudan yürütülmesine izin verir. Bu exec…()
, bir BSD programındaki rutinlerden birinin bir örneğinin SysV altında /bin/sh
bu program için yorumlayıcıyı (tipik olarak ) yürütmek için değiştirilmesi gerekebileceği anlamına gelir .
- Stephen Frede (1988). Msgstr "Sistem X Sürüm Y'de Programlama". Avustralya Unix Sistemleri Kullanıcı Grubu Bülteni . Cilt 9. Sayı 4. s. 111.
Burada önemli bir nokta, kabuklara bakarken, yürütülebilir kabuk komut dosyalarının varlığı aslında exec…()
fonksiyonlar için bir konudur . Kabuklar , bugün bile bazı kabuklarda bulunan (ve günümüzde fonksiyonların alt kümesi için zorunlu olan) yürütülebilir kod mekanizmasının öncüllerini içerir exec…p()
ve biraz yanıltıcıdır. Bu bağlamda standardın ele alması gereken şey exec…()
, yorumlanmış bir komut dosyasında nasıl çalıştığıdır ve POSIX'in ilk oluşturulduğu sırada, hedef işletim sistemleri spektrumunun büyük bir kısmında ilk etapta işe yaramadı .
Betik sözlü sihirli sayı mekanizması özellikle bu yana standardize edilmemiştir neden bir alt soru vardı evrenin AT & T tarafında kamuoyuna ulaştı ve dokümante edilmiş exec…()
yılında Sistem 5 Arayüzü Tanımı ile açmak 1990'larda, :
Bir tercüman dosyası formun bir satırıyla başlar#! yol adı [arg]
burada pathname yorumlayıcının yoludur ve arg isteğe bağlı bir argümandır. Bir exec
yorumlayıcı dosyası oluşturduğunuzda, sistem exec
belirtilen yorumlayıcıdır.
- exec
. Sistem V Arayüz Tanımı . Cilt 1. 1991.
Ne yazık ki, davranış bugün 1980'lerde olduğu gibi neredeyse tamamen farklıdır ve standartlaşmak için gerçekten yaygın bir davranış yoktur. Bazı Unices (örneğin, ünlü HP-UX ve FreeBSD) komut dosyalarını komut dosyaları için yorumlayıcı olarak desteklemez. İlk satırın boşlukla ayrılmış bir, iki veya birçok öğe olup olmadığı MacOS (ve 2005'ten önceki FreeBSD sürümleri) ve diğerleri arasında değişir. Desteklenen maksimum yol uzunluğu değişir. ␀
ve POSIX taşınabilir dosya adı karakter kümesinin dışındaki karakterler, baştaki ve sondaki boşluk gibi zor. 0., 1. ve 2. argümanların ortaya çıktığı şey de karmaşıktır ve sistemler arasında önemli farklılıklar vardır. Bazı anda POSIX conformant ama olmayan-Uixix sistemleri hala bu tür bir mekanizmayı desteklememektedir ve zorunlu kılmak, onları artık POSIX uyumlu olmaya dönüştürecektir.
daha fazla okuma