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   DuoRuaiMi4567  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示