Hãy xem xét các lệnh sau :
bash -c "echo x; cat 1" | tee 1
.
Sự hiểu biết của tôi là nó sẽ rẽ nhánh sang một shell mới, ghi x
vào thiết bị xuất chuẩn , viết cho thiết bị xuất file 1 not found
chuẩn, thoát và trả lại quyền điều khiển cho tiến trình cha, và viết x
cho thiết bị xuất chuẩn và chuyển đổi 1
. Do đó, tôi mong đợi kết quả đầu ra cuối cùng x
và tệp 1
chứa chính xác chuỗi x
.
Tuy nhiên, đây không phải là trường hợp. Trong thực tế, tệp 1
thường chứa ít nhất hai trường hợp x
và đôi khi hàng nghìn dòng x
s. Trong một bài kiểm tra hàng loạt về việc chạy lệnh mười nghìn lần, số x
s trung bình được ghi vào tệp là 52,3 và trung vị là 1. Cơ chế nào gây ra điều này? Mô hình phân phối xác suất nào hành vi này? Tôi nghi ngờ rằng nó là hình học có điều kiện và thống nhất.
x
s trung bình được ghi vào tệp là 4,35. Tôi đoán nó sẽ phụ thuộc rất nhiều vào tải máy.
tee
đã mở tệp để viết trước khicat
mở tệp để đọc, bạn có thể nhận được nhiềux
-es trong tệp. Trong trường hợp đó, "vòng lặp" sẽ kết thúc bất cứ khi nàocat
đọc nhanh hơntee
ghi, đến cuối tệp.