名前付きパイプ
名前なしパイプとは異なり、名前があるパイプ。Unix系のOSではmkfifoで名前付きパイプ(Named pipe)を作成できる。
code:plain
mkfifo my_pipe
gzip -9 -c < my_pipe > out.gz &
code:sh
mkfifo {in,out}
iigau@pier namedpipe$ ls
in out
行ごとに読み取ってechoするワンライナー
code:sh
sh -c 'while read -r line <in; do echo "\n>>> $line\n"; done >out' &
1 739770
outからの出力を読み取れる状態にしておく(その出力は現在のシェル)
code:sh
while read -r line < out; do echo $line; done &
2 739909
code:sh
$
>> ping
iigau@pier namedpipe$
iigau@pier namedpipe$ echo ping >in
さよなら
code:sh
kill %1 %2
https://youtube.com/shorts/7scHD-uZ4fI?si=YIoNGWzsVmurM2WZ