原文 http://www.linuxjournal.com/content/using-named-pipes-fifos-bash
命名管道可以使用如下两个命令创建
$ mkfifo /tmp/testpipe
$ mknod /tmp/testpipe p
下面是管道的一个Reader
#!/bin/bash pipe=/tmp/testpipe trap "rm -f $pipe" EXIT if [[ ! -p $pipe ]]; then
#创建命令管道 mkfifo $pipe fi while true do
#从管道里读取一行 if read line <$pipe; then
#如果是quit则退出循环 if [[ "$line" == 'quit' ]]; then break fi
#输出读取的数据到屏幕 echo $line fi done echo "Reader exiting"
下面是一个writer
#!/bin/bash pipe=/tmp/testpipe#判断管道是否存在 if [[ ! -p $pipe ]]; then echo "Reader not running" exit 1 fi #如果有参数,则将参数写入管道 if [[ "$1" ]]; then echo "$1" >$pipe else#否则将当前进程id写入管道 echo "Hello from $$" >$pipe fi