Sen Aşağıdaki hile kullanabilirsiniz takas stdout
ve stderr
. Sonra normal boru işlevselliğini kullanın.
( proc1 3>&1 1>&2- 2>&3- ) | proc2
Sağlanan stdout
ve stderr
her ikisi de başlangıçta aynı yere işaret ettiğinde, bu size ihtiyacınız olanı verecektir.
Ne x>y
bit yapar dosya tanıtıcısı değiştirmektir x
şimdi nerede dosya tanıtıcısı olan bilgi gönderir, böylece y
şu anda puan. Özel durumumuz için:
3>&1
sadece aşağıdaki son madde işareti için bir yere kaydetmek üzere mevcut tutamağa (orijinal stdout) çıkış verecek yeni bir tutamaç oluşturur .3
1
1>&2
geçerli tanıtıcıya (orijinal stderr) 1
çıktı almak için tanıtıcıyı (stdout) değiştirir .2
2>&3-
geçerli tutamağa (orijinal stdout) 2
çıkış yapmak için tutamağı (stderr) değiştirir , ardından tutamacı kapatır ( sondaki aracılığıyla ).3
3
-
Sıralama algoritmalarında gördüğünüz takas komutu etkili bir şekilde:
temp = value1;
value1 = value2;
value2 = temp;
rc
Başka bir kabuk olan böyle basit bir yönlendirme yapabilirsiniz . Ör:proc1 |[2] proc2
. Hoş değil mi?bash
Gerçi değil .