Dua jendela, pengguna yang sama, dengan bash prompt. Di jendela-1 ketik:
$ mkfifo f; exec <f
Jadi bash sekarang mencoba membaca dari file descriptor 0, yang dipetakan ke pipa bernama f. Di jendela-2 ketik:
$ echo ls > f
Sekarang window-1 mencetak ls dan kemudian shellnya mati. Mengapa?
Eksperimen selanjutnya: buka window-1 lagi dengan exec <f. Di jendela-2 ketik:
$ exec 3>f
$ echo ls >&3
Setelah baris pertama di atas, jendela-1 bangun dan mencetak prompt. Mengapa? Setelah baris kedua di atas, window-1 mencetak lsoutput dan shell tetap hidup. Mengapa? Bahkan, sekarang di window-2, echo ls > ftidak menutup shell window-1.
Jawabannya pasti ada hubungannya dengan keberadaan file descriptor 3 dari window-2 yang mereferensikan pipa bernama ?!
exec 3>fdijalankan, shell pertama kemudian memberikan prompt. (Poin minor, maksud Anda "dalam mode tulis " dalam komentar Anda?)
exec <f,bashtidak mencoba membaca darif, itu pertama-tama mencoba untuk membukanya . Tidakopen()akan kembali sampai ada beberapa proses melakukan buka lagi dalam mode tulis ke pipa (pada titik mana pipa akan dipakai, dan shell akan membaca input dari itu).