Hai cửa sổ, cùng một người dùng, với lời nhắc bash. Trong loại cửa sổ-1:
$ mkfifo f; exec <f
Vì vậy, bash hiện đang cố đọc từ mô tả tệp 0, được ánh xạ tới ống có tên f. Trong loại cửa sổ-2:
$ echo ls > f
Bây giờ window-1 in một ls và sau đó shell chết. Tại sao?
Thí nghiệm tiếp theo: mở cửa sổ-1 lần nữa với exec <f. Trong loại cửa sổ-2:
$ exec 3>f
$ echo ls >&3
Sau dòng đầu tiên ở trên, window-1 thức dậy và in dấu nhắc. Tại sao? Sau dòng thứ hai ở trên, window-1 in lsđầu ra và shell vẫn còn sống. Tại sao? Thực tế, bây giờ trong window-2, echo ls > fkhông đóng shell window-1.
Câu trả lời phải có liên quan đến sự tồn tại của bộ mô tả tệp 3 từ cửa sổ-2 tham chiếu đường ống có tên?!
exec 3>fđược chạy, shell đầu tiên sẽ đưa ra lời nhắc. (Điểm nhỏ, ý bạn là "trong chế độ ghi " trong bình luận của bạn?)
exec <f,bashkhông cố đọc từfđầu, trước tiên là cố gắng mở nó. Cácopen()sẽ không trở lại cho đến khi có một số quá trình làm một nẻo mở trong chế độ ghi vào ống (lúc này đường ống sẽ được khởi tạo, và vỏ sẽ đọc thông tin từ nó).