Burada 'girdi' için birkaç farklı referans var, bu yüzden önce onu anlamak için birkaç senaryo vereceğim. Soruya en kısa sürede yanıtınız :
stat testfile < <($1)> outputfile
Yukarıdakiler testfile üzerinde bir stat gerçekleştirecek, STDOUT 'u alacak (yönlendirme) olacak ve bunu bir sonraki özel fonksiyona (<() kısmına) dahil et, sonra neyin nihai sonuçlarını yeni bir dosyaya (çıkış dosyası) çıkar. Dosya çağrılır ve daha sonra bash yerleşiklerine başvurulur (yeni bir komut dizisine başlayana kadar her seferinde $ 1).
Sorunuz harika ve bunu yapmanın birkaç yanıtı ve yolu var, ancak gerçekten ne yaptığınızla gerçekten de değişiyor.
Mesela, oldukça kullanışlıdır. Bunun yaygın bir kullanımı, psuedo kodu zihniyetinde:
run program < <($output_from_program)> my_own.log
Bunu almak ve bu bilgiyi genişletmek, şöyle şeyler yaratmanıza izin verir:
ls -A; (while read line; do printf "\e[1;31mFound a file\e[0m: $line\n"; done) < <(/bin/grep thatword * | /usr/bin/tee -a files_that_matched_thatword)
Bu, şu anki dizininizde basit bir ls -A gerçekleştirecek, sonra ls -A'dan (ve işte zor olduğu yerlerde) her sonucun ne zaman geçileceğini söyleyiniz ve bu sonuçların her birinde "o kelimeyi" tutacaktır printf (içinde kırmızı olan) aslında içinde "thatword" olan bir dosya bulduysa. Ayrıca grep sonuçlarını, files_that_matched_thatword adlı yeni bir metin dosyasına kaydeder.
Örnek çıktı:
ls -A; (while read line; do printf "\e[1;31mFound a file\e[0m: $line\n"; done) < <(/bin/grep thatword * | /usr/bin/tee -a files_that_matched_thatword)
index.html
Tüm bunlar basitçe ls -A sonucunu yazdı, özel bir şey yok. Bu sefer grep için bir şeyler ekleyin:
echo "thatword" >> newfile
Şimdi tekrar çalıştır:
ls -A; (while read line; do printf "\e[1;31mFound a file\e[0m: $line\n"; done) < <(/bin/grep thatword * | /usr/bin/tee -a files_that_matched_thatword)
files_that_matched_thatword index.html newfile
Found a file: newfile:thatword
Şu anda aradığınızdan daha yorucu bir cevap olsa da, bunun gibi kullanışlı notları tutmanın gelecek çalışmalarınızda size daha fazla fayda sağlayacağına inanıyorum.
<(dosyadan sola|giriş ) veya (akıştan sağa giriş ) aracılığıyla borulanabilir . Bir fark var.