Ada beberapa referensi berbeda untuk 'input' di sini, jadi saya akan memberikan beberapa skenario dengan memahaminya terlebih dahulu. Untuk jawaban cepat Anda atas pertanyaan dalam bentuk terpendek :
stat testfile < <($1)> outputfile
Di atas akan melakukan stat pada testfile, ambil (redirect) itu STDOUT dan memasukkan itu ke dalam fungsi khusus berikutnya (bagian <()) kemudian output hasil akhir dari apa pun itu, ke dalam file baru (outputfile). File dipanggil, lalu direferensikan dengan bash built-in ($ 1 setiap kali setelah, sampai Anda memulai set instruksi baru).
Pertanyaan Anda luar biasa, dan ada beberapa jawaban dan cara untuk melakukan ini, tetapi memang berubah dengan apa yang Anda lakukan secara spesifik.
Misalnya, Anda dapat mengulanginya juga, yang cukup berguna. Penggunaan umum dari ini adalah, dalam pola pikir psuedo-code, adalah:
run program < <($output_from_program)> my_own.log
Mengambil dan memperluas pengetahuan itu memungkinkan Anda untuk menciptakan hal-hal seperti:
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)
Ini akan melakukan ls -A sederhana pada direktori Anda saat ini, kemudian memberi tahu sementara untuk mengulang setiap hasil dari ls -A ke (dan di sinilah rumit!) Grep "thatword" di masing-masing hasil tersebut, dan hanya melakukan yang sebelumnya printf (merah) jika benar-benar menemukan file dengan "kata itu" di dalamnya. Ini juga akan mencatat hasil grep ke file teks baru, files_that_matched_thatword.
Contoh output:
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
Semua itu hanya mencetak hasil ls -A, tidak ada yang istimewa. Tambahkan sesuatu untuk diambil kali ini:
echo "thatword" >> newfile
Sekarang jalankan kembali:
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
Meskipun mungkin jawaban yang lebih melelahkan daripada yang Anda cari saat ini, saya percaya menyimpan catatan berguna seperti ini akan lebih bermanfaat bagi Anda di masa depan.
<(input dari file ke sisi kiri) atau|(input dari stream ke sisi kanan). Ada perbedaan.