首页 > 解决方案 > bash 重定向写入防止创建

问题描述

进程A创建一个命名管道来接收来自脚本B的命令。当A退出时,它将删除命名管道。脚本将命令写入此管道,如下所示:

echo start > /run/command.fifo

但是如何防止脚本/run/command.fifo在命名管道不存在时创建一个名为的文件。在写入之前添加检查是不安全的:

[ -p /run/command.fifo ] || exit 1
echo start > /run/command.fifo

因为管道检查后可能会被删除。

标签: linuxbashpipe

解决方案


然后像这样

[[ -p /run/command.fifo ]] && echo start > /run/command.fifo || echo 'fifo not exist'

推荐阅读