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等

 
posted on 2022-06-02 09:51  DuoRuaiMi4567  阅读(51)  评论(0编辑  收藏  举报