SORU
2 EKİM 2009, Cuma


Bash ile nasıl başka bir süreç içine standart hata boru miyim?

Başka işlemler içinde bir boru işlemi standart çıktıya standart giriş nasıl iyi bilinmektedir:

proc1 | proc2

Ama eğer proc2 için proc1 standart hata göndermek ve standart çıkış akımı konumuna nereye gitmek istersem ne olacak? bash çizgisinde bir komut olacağını düşünüyor:

proc1 2| proc2

Ama, ne yazık ki. Bunu yapmak için herhangi bir yolu var mı?

CEVAP
2 EKİM 2009, Cuma


Aşağıdaki hile kullanabilirsiniztakasstdout stderr. O zaman sadece normal bir kanal işlevi kullanın.

( proc1 3>&1 1>&2- 2>&3- ) | proc2

Sağlanan stdout stderr her iki başında aynı yere işaret etti, bu sana ihtiyacın olanı verecek.

Ne yapar:

  • 3>&1 yeni bir dosya geçerli olan 3 1 (özgün stdout) sadece bir yere kaydetmek için bir tanıtıcı oluşturur.
  • 1>&2- stdout geçerli dosya için 2 (orijinal stderr) 2 kapatır sapı ayarlar.
  • 2>&3- stderr geçerli dosya için 3 (özgün stdout) 3 kapatır sapı ayarlar.

Etkili sıralama görüşürüz swap komutu:

temp   = value1;
value1 = value2;
value2 = temp;

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • Droid Life

    Droid Life

    17 Kasım 2009
  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009