在Bash脚本中使用命名管道(FIFO)

来源:互联网 发布:js多图片上传预览插件 编辑:程序博客网 时间:2024/06/03 20:24

原文 http://www.linuxjournal.com/content/using-named-pipes-fifos-bash

 

命名管道可以使用如下两个命令创建

$ mkfifo /tmp/testpipe

$ mknod /tmp/testpipe p

 

下面是管道的一个Reader

#!/bin/bashpipe=/tmp/testpipetrap "rm -f $pipe" EXITif [[ ! -p $pipe ]]; then
#创建命令管道    mkfifo $pipefiwhile truedo
#从管道里读取一行    if read line <$pipe; then
#如果是quit则退出循环        if [[ "$line" == 'quit' ]]; then            break        fi
#输出读取的数据到屏幕        echo $line    fidoneecho "Reader exiting"
下面是一个writer
#!/bin/bashpipe=/tmp/testpipe
#判断管道是否存在if [[ ! -p $pipe ]]; then    echo "Reader not running"    exit 1fi#如果有参数,则将参数写入管道if [[ "$1" ]]; then    echo "$1" >$pipeelse
#否则将当前进程id写入管道    echo "Hello from $$" >$pipefi

原创粉丝点击