Saya mencoba memahami pipa bernama dalam konteks contoh khusus ini.
Saya mengetik <(ls -l)terminal saya dan mendapatkan output sebagai bash: /dev/fd/63: Permission denied,.
Jika saya mengetik cat <(ls -l), saya bisa melihat isi direktori. Jika saya mengganti catdengan echo, saya pikir saya mendapatkan nama terminal (atau itu?).
echo <(ls -l)memberikan output sebagai /dev/fd/63.
Juga, contoh output ini tidak jelas bagi saya.
ls -l <(echo "Whatever")
lr-x------ 1 root root 64 Sep 17 13:18 /dev/fd/63 -> pipe:[48078752]
Namun, jika saya memberi, ls -l <()itu mencantumkan saya isi direktori.
Apa yang terjadi dalam kasus pipa bernama?
mkfifohanya membuat pipa bernama, tanpa konten apa pun. Jadi, Anda perlu menulis sendiri (mismkfifo mypipe; ls > mypipe.). Dan ya, tulisan ke pipa akan diblok sampai beberapa proses membaca dari pipa.