系统相关
首页 > 系统相关> > linux 管道通信 之 不通脚本间通信示例

linux 管道通信 之 不通脚本间通信示例

作者:互联网

#!/bin/bash
# filename: reader.sh
# 逐行读取管道中的内容

pipe=/tmp/testpipe

trap "rm -f $pipe" EXIT

if [[ ! -p $pipe ]]; then
    mkfifo $pipe
fi

while true
do
    if read line <$pipe; then
        if [[ "$line" == 'quit' ]]; then
            break
           else
            echo $line   
        fi
 
    fi
done

echo "Stop reader...."
#!/bin/bash
# writer.sh
# 把当前进程的pid写到管道
pipe=/tmp/testpipe

if [[ ! -p $pipe ]]; then
    echo "Reader not running"
    exit 1
fi


if [[ "$1" ]]; then
    echo "$1" >$pipe
else
    echo "Hello from $$" >$pipe
fi
reader 和 writer 必定有一个会等待,$pipe中不会存数据,只是一个桥梁

trap "rm -f $pipe" EXIT 解释:https://zhuanlan.zhihu.com/p/36831519
只要不是强制拔电源关键,脚本结束都会调用里面的命令,包括异常及reboot等

 

标签:tmp,pipe,示例,testpipe,writer,echo,间通信,linux,fi
来源: https://www.cnblogs.com/duoruaimi4/p/16336701.html