Pertimbangkan perintah berikut:
bash -c "echo x; cat 1" | tee 1
.
Pemahaman saya adalah bahwa ia akan bercabang ke shell baru, menulis x
ke stdout, menulis file 1 not found
ke stderr, keluar dan mengembalikan kontrol ke proses induk, dan menulis x
ke stdout dan ke 1
. Oleh karena itu, saya akan mengharapkan hasil akhir x
, dan file tersebut 1
berisi string x
.
Namun, ini bukan masalahnya. Pada kenyataannya, file 1
biasanya berisi setidaknya dua contoh x
, dan kadang-kadang ribuan baris x
s. Pada tes batch menjalankan perintah sepuluh ribu kali, jumlah rata-rata x
s ditulis ke file adalah 52,3, dan median adalah 1. Mekanik apa yang menyebabkan ini? Distribusi probabilitas apa yang memodelkan perilaku ini? Saya menduga bahwa itu adalah geometris kondisional dan seragam.
x
ditulis ke file adalah 4,35. Saya kira itu akan sangat tergantung pada beban mesin.
tee
telah membuka file untuk ditulis sebelumcat
membukanya untuk dibaca, Anda mungkin mendapatkan banyakx
-es dalam file tersebut. Dalam hal ini, "perulangan" akan berakhir kapan sajacat
membaca lebih cepat daripadatee
menulis, mencapai akhir file.