Dizilerin POSIX'e dahil edilmesi POSIX standardının bozulmasına neden olur mu?

Aug 16 2020

Bash ve ksh93'te dizileri kullanma yeteneği, birden çok diziden öğelere hızlı bir şekilde erişme ihtiyacı doğduğunda çok kullanışlıdır. İşte hızlı bir örnek:

#!/bin/ksh93 --

array1=(1 2 3 4 5 6 7)

array2=(8 9 10 11 12 13 14)

printf '%s\n' "Third element of array1 is ${array1[2]} and fifth element of array2 is ${array2[4]}"

Dizilerin POSIX standardına dahil edilmemesinin nedenlerinden en azından bir kısmının, böyle yapmanın işleri bozacağını okuduğumu hatırlıyorum. Bu doğru mu? Ne şeyler bozulur?

Yanıtlar

2 bk2204 Aug 18 2020 at 08:39

Ne bahsettiğin şey metin bilmiyorum ama bu durum böyle değil oldukça emin değilim, çünkü bashve ksh93POSIX uyumlu olması gerekiyordu ve diziler yapsam POSIX kabukları kırmak için neden daha sonra bu kabukları uyumlu olmaz .

Ancak bu, POSIX'in bunları içereceği anlamına gelmez. Birincisi bashve ksh93dizileri aynı şekilde uygulayamayabilir ve POSIX geniş çapta konuşlandırılmış tarihsel uygulamalarda farklı davranan bir özelliği belirtmek istemeyecektir.

İkincisi, POSIX genellikle çok fazla özellik belirtmez. Ancak şimdi, localhemen hemen her açık kaynak POSIX kabuğunda yaygın olarak kullanılan, talep edilecek bir teklif bile var ksh93. Benzer şekilde, viyalnızca POSIX özelliklerini uygulayan bir uygulama kullanmak da mümkün olabilir , ancak çoğu kullanıcı bunu özelliklerde oldukça seyrek bulacaktır.

Son olarak, POSIX çoğu uygulamada zaten mevcut olan şeyleri standartlaştırmayı tercih eder ve kabuk dizileri böyle bir şey değildir. dashsoyunu paylaştığı kabukların çoğunun yanı sıra busybox. Eksiksiz bir POSIX ortamı nispeten küçük olabilir ve bu, gömülü sistemlerle çalışması gereken kişiler için çok uygundur, bu nedenle kolaylık lehine genellikle hoş şeyler atlanır.

Ayrıca, yaygın olarak kullanılan açık kaynak uygulamasının bir özelliğe sahip olmasının ticari Unix ortamlarının olacağı anlamına gelmediğini de unutmayın. POSIX dizileri yeni bir sürümde belirtecek olsa bile, tüm bu sistemlerin onları destekleyecek şekilde güncellenmesi uzun yıllar alacaktı.