首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有当FIFO存在时才写入FIFO

只有当FIFO存在时才写入FIFO
EN

Unix & Linux用户
提问于 2017-09-07 19:30:27
回答 1查看 3.3K关注 0票数 4

我看到的关于写入FIFO的大多数示例都说使用echocat命令并将stdout重定向到文件。例如,

代码语言:javascript
复制
echo 'a' > /tmp/my_fifo

但是,如果FIFO不存在,这将创建一个常规文件。是否有一些类似于mkfifo的东西,但是如果它不存在的话,它会失败吗?也就是说,类似于:

代码语言:javascript
复制
echo 'a' | write-to-existing-file /tmp/my_fifo
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-09-07 19:38:12

根据“巴什手册”:

代码语言:javascript
复制
-p file
   True if file exists and is a named pipe (FIFO).

所以:

代码语言:javascript
复制
if [[ -p /tmp/my_fifo ]]; then
    # commands to execute
fi

这个问题有标签,巴什。在上下文中,[[]]的使用是特定于BASH的。( [[]]也使用zsh和Korn。)见BashFAQ/031。可移植脚本应该使用[]编写,它们可以在所有POSIX中工作。

票数 11
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/391023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档