Salah satu contoh terbaik penggunaan praktis pipa bernama...
Dari http://en.wikipedia.org/wiki/Netcat:
Perilaku berguna lainnya adalah menggunakan
netcat
sebagai proxy. Baik port dan host dapat dialihkan. Lihat contoh ini:nc -l 12345 | nc www.google.com 80
Porta 12345 mewakili permintaan.
Ini memulai
nc
server pada port 12345 dan semua koneksi dialihkan kegoogle.com:80
. Jika browser web membuat permintaan kenc
, permintaan akan dikirim ke google tetapi tanggapan tidak akan dikirim ke browser web. Itu karena pipa searah. Ini dapat diatasi dengan pipa bernama untuk mengarahkan ulang input dan output.mkfifo backpipe nc -l 12345 0<backpipe | nc www.google.com 80 1>backpipe
Berikut perintahnya:
$ mkfifo named_pipe
$ echo "Hi" > named_pipe &
$ cat named_pipe
Perintah pertama membuat pipa.
Perintah kedua menulis ke pipa (memblokir). &
letakkan ini di latar belakang sehingga Anda dapat terus mengetik perintah di shell yang sama. Itu akan keluar ketika FIFO dikosongkan oleh perintah berikutnya.
Perintah terakhir membaca dari pipa.
Buka dua cangkang yang berbeda, dan biarkan berdampingan. Di keduanya, buka /tmp/
direktori:
cd /tmp/
Yang pertama ketik:
mkfifo myPipe
echo "IPC_example_between_two_shells">myPipe
Yang kedua, ketik:
while read line; do echo "What has been passed through the pipe is ${line}"; done<myPipe
Shell pertama tidak akan memberi Anda prompt apa pun sampai Anda menjalankan bagian kedua dari kode di shell kedua. Itu karena fifo baca dan tulis memblokir.
Anda juga dapat melihat tipe FIFO dengan melakukan ls -al myPipe
dan lihat detail jenis file khusus ini.
Langkah selanjutnya adalah memulai kode dalam skrip!