2016-03-22 12 views
0

Kabuk komut dosyalarında yeniyim. Aşağıda bu kod var ve aralarındaki farkı bilmiyorum. Öncelikli operatör() aradım ve aşağıda bu satırda ne gibi bir fark olduğunu anlayamadım.Basit kod satırında() 'nin etkisi nedir?

stdbuf -o 0 -e 0 ../../<program> <input file> &> OutputFile.txt & 

(stdbuf -o 0 -e 0 ../..<program> <input file> &) &> OutputFile.txt 

Cevabınız için şimdiden teşekkür ederiz.

+1

'subshell' için arama yapın. – pfnuesel

+1

Kapalı bir komutu bir alt kabukta çalıştırır. – JNevill

cevap

1

İlk örnek arka (&) içerisinde OutputFile.txt yönlendirilir standart çıktı ve standart hata ile stdbuf altında <program> çalışır.

ikinci tün onun standart hata ve OutputFile.txt yönlendirilir standart çıkışı bir kabuktaki arka (&) içerisinde stdbuf altında <program>.

Bu farkın pratik etkileri ne ise tam olarak söyleyemem.

+0

Cevabınız için teşekkür ederiz! –

0

Açıklamalarda daha önce de belirtildiği gibi, (...) ekli ifadeler subshell'da yürütülür.

aşağıdaki kesimi düşünün: Yukarıdaki

(
echo 'line1' 
echo 'line2' 
echo 'line3' 
) >/tmp/file 

İkisi aynı sonucu üretir, ama ikinci olarak yazılabilir böylece bir altkabuk kullanılarak

echo 'line1' > /tmp/file 
echo 'line2' >> /tmp/file 
echo 'line3' >> /tmp/file 

, sen bütün altkabuk yönlendirebilirsiniz Daha kısa, daha temiz ve daha kolay değiştirilebilir.

İlgili konular