Ne amacı vardır : (kolon) GNU Bash yerleşik? | Netgez.com
SORU
11 Temmuz 2010, Pazar


Ne amacı vardır : (kolon) GNU Bash yerleşik?

Hiçbir şey, yorum bir lider daha yapıyor, ama aslında kendi başına bir kabuk yerleşik bir komut amacı nedir?

Muhtemelen büyük ölçüde yorum büyüklüğüne bağlı olarak değişir arayın, @ hakkında sizin komut dosyalarına açıklama ekleme daha yavaş. Bunun için mümkün olan tek sebep bu

# poor man's delay function
for ((x=0;x<100000;  x)) ; do : ; done

# inserting comments into string of commands
command ; command ; : we need a comment in here for some reason ; command

# an alias for `true' (lazy programming)
while : ; do command ; done

Gerçekten aradığım şey olmuş sanırım.

CEVAP
11 Temmuz 2010, Pazar


Tarihsel olarakKabukları yerleşik komutlar olarak true false yoktu Bourne. true sadece let 0 gibi bir ** 8, false takma ad yerine.

: Bourne türetilmiş eski kabukları taşınabilirlik için true biraz daha iyi. Basit bir örnek olarak, ne ! boru hattı operatörü ne || liste operatör bazı eski Bourne kabukları olduğu gibi) sahip düşünün. Bu dallanma için tek yolu olarak, if deyim else yan çıkış durumuna göre yapraklar:

if command; then :; else ...; fi

if boş olmayan gerektirdiğinden then maddesi ve Yorum yok-op olarak boş olmayan, : hizmet sayılmaz.

Günümüzde(yani: modern bir bağlam) genellikle : true da kullanabilirsiniz. Hem POSIX tarafından belirtilen ve okumak true daha kolay bulabilirsiniz. İlginç bir fark var ancak: : sözde POSIXözel olarak inşa edilmiş, true bir isedüzenli yerleşik.

  • Özel built-ins kabuÄŸu; Normal built-ins sadece "genellikle", ama kesinlikle garanti deÄŸil. yerleÅŸik yerleÅŸik olması gerekmektedir Genellikle düzenli bir program : adında bir çok sistem YOLUNDA true fonksiyonu ile olmamalı.

  • Muhtemelen en önemli fark, bu özel inÅŸa edilmiÅŸ-ins, herhangi bir deÄŸiÅŸken kümesi tarafından dahili hatta çevre boyunca basit komut deÄŸerlendirme - devam sonra komutu tamamlar gibi gösterdi burada kullanarak ksh93:

    $ unset x; ( x=hi :; echo "$x" )
    hi
    $ ( x=hi true; echo "$x" )
    
    $
    

    GNU POSIX uyumluluk modu, ama "POSIX sh" kabukları bu çizgi, ksh93, dahil ve mksh. gözlem türetilmiş tüm diğer ana faaliyet dışında Bash, Zsh gibi bu şartı gözardı edilir,

  • BaÅŸka bir fark built-ins normal exec - burada Bash kullanarak gösterilen ile uyumlu olmalıdır

    $ ( exec : )
    -bash: exec: :: not found
    $ ( exec true )
    $
    
  • POSIX da : Bu dersin uygulamaya özgü bir ayrıntı olsa daha hızlı true, dan açıkça belirtiyor.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • dope2111

    dope2111

    29 HAZÄ°RAN 2009
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012