((…)) {…;} Geçerli bir kabuk sözdizimi için mi? Hangi kabuklarda?


Yanıtlar:


30

{ ...; }Zaten yerine kabul edildi do ...; doneyılında for70'lerin Unix V7 içinde Bourne kabuğunun ilk sürümünde döngüler (bkz kaynak kodunu bildiğim kadarıyla belgelenmiş asla olsa da).

Bunların tümü ksh(her ikisi de Bourne kabuğundan türetilen orijinal ve ksh93 yeniden yazılır), pdksh¹ (ve türevleri), bash(1989 başından itibaren) ve zshonu destekler. Ben böyle bir ashtürev bilmiyorum . yashya da değil yashPOSIX standardına yazılmıştır.

In zsh, 1991'de 2.0 ile destek eklendi, ancak Bourne sözdiziminin ötesine geçen çoğu yapı için yeni kısa form aralığının bir parçası olarak. Sadece değil for i in 1 2; { ...; }, for i in 1 2; any-commandve (ve bunların varyantları). Ve orada belgelenmiştir ve tanıtıldığından beri olmuştur .

Bunun yanında AFAIK, zshsadece pdksh belgelerini (her ikisi için de forve her ikisi için select) belgeler .

Gelince ((init; condition; action))gelen formu, ksh93ve tarafından kopyalanmış zshve bash.

Ne o ((...))ne de { ...; }yerine do ...; donePOSIX bulunmaktadır.

Ayrıca bkz . Bash'de "do" anahtar sözcüğünün döngüler için amacı nedir? Daha fazla fordöngü formları için.


Versions Daha eski sürümler ya da temel aldığı Forsyth kabuğu. 1994 yılında 5.1.1'de eklenmiştir ve muhtemelen neden orada belgelendiğini açıklamaktadır.


1
Vay be, Bay Bourne c önişlemcisinin bu 70'li yılların kaynak kodunda kullanımını tamamen benimsedi.
Dijital Travma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.