SORU
29 Kasım 2010, PAZARTESİ


Bir mesele ile birden çok bağımsız değişken kullanmayı (yani #!)?

--re-interval *ile 19* bir komut dosyası çalıştırmak için bir mesele kullanarak istiyorum. "Naif" bir yaklaşım

#!/usr/bin/gawk --re-interval -f
... awk script goes here

aval aval anlamak ilk bağımsız değişken "--re-interval -f" (boşluk etrafında parçalı değil) denir beri çalışmıyor. Bunun için bir çözüm var mı?

Elbette senin de buna aval aval doğrudan ama sarma içine bir kabuk komut dosyası böler ilk bağımsız değişken veya bir kabuk sonra aramalar aval aval koymak ve komut dosyası içine başka bir dosya, ama merak ediyordum da orada olduğunu bir şekilde bunu yapmak içinde bir dosya.

Mesele hatları davranışları sistemden sisteme değişiklik gösterir - en az Cygwin boşluklar tarafından bağımsız bölmek değil. Ben sadece böyle davranan bir sistemde nasıl bakım; komut taşınabilir değildir.

CEVAP
29 Kasım 2010, PAZARTESİ


Mesele çizgi asla POSIX, SUS, LSB veya diğer özellikleri bir parçası olarak belirtildi. AFAIK, düzgün bir şekilde belgelenmiş olmamıştır.

Ne hakkında kabaca bir fikir birliği vardır: ! \n exec arasındaki her şeyi alın. Varsayım ! \n arasındaki her şeyi yorumlayıcı tam mutlak bir yolu olmasıdır. Eğer boşluk varsa ne olduğu hakkında fikir birliği yoktur.

  1. Bazı işletim sistemleri sadece yolu olarak tüm şey tedavi. Çoğu işletim sistemlerinde, tüm sonra, boşluk veya tire yolunda yasal.
  2. Bazı işletim sistemleri, boşluk ve yorumlayıcı yolunu ve bireysel değişkenler olarak sonuna kadar ilk bölümünü tedavi böl.
  3. Bazı işletim sistemleri de bölünmüşilkve interpeter yolu ve bir de ön tarafı boşluk tedavisitekargüman görüyorsunuz.
  4. Hatta konunun çizgileri desteği yokhiç.

Neyse ki, 1. ve 4. ama 3 ölmüş gibi görünüyor. oldukça yaygın şekilde çalışır, ancak birden fazla argüman geçmek mümkün güveniyor.

Ve komutların yerini de POSIX belirtilen ya da SUS olmadığından, genellikle çalıştırılabilir dosyanın geçerek tek argüman kullanınadıenv o kadarçalıştırılabilir dosyanın konumu; örneğin belirleyebilirsiniz:

#!/usr/bin/env gawk

Açıkçası, buhalaenv için belirli bir yol varsayar ama /bin, Bu genellikle güvenli olduğunu, bu yüzden içinde yaşadığı çok az sistem vardır. env konumu gawk python ruby gibi hatta daha kötü bir şey ya spidermonkey.] konumunu daha çok standart.

Aslında kullanamazsınız anlamına gelirherhangi birargümanlarhiç.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • ASUS

    ASUS

    22 EKİM 2005