从两个不同的脚本写入和读取 fifo

2024-01-22

我有两个 bash 脚本。 一个脚本写入 fifo。第二个从 fifo 读取,但在第一个结束之后写入。

但有些东西不起作用。我不明白问题出在哪里。这是代码。

第一个脚本是(作者):

#!/bin/bash

fifo_name="myfifo";

# Se non esiste, crea la fifo;
[ -p $fifo_name ] || mkfifo $fifo_name;

exec 3<> $fifo_name;

echo "foo" > $fifo_name;
echo "bar" > $fifo_name;

第二个脚本是(读者):

#!/bin/bash

fifo_name="myfifo";

while true
do
    if read line <$fifo_name; then
       # if [[ "$line" == 'ar' ]]; then
        #    break
        #fi
        echo $line
    fi
done

有人可以帮我吗? 谢谢


将第二个脚本替换为:

#!/bin/bash    
fifo_name="myfifo"
while true
do
    if read line; then
        echo $line
    fi
done <"$fifo_name"

这只会打开 fifo 一次并读取其中的每一行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从两个不同的脚本写入和读取 fifo 的相关文章

  • 如何在 bash 中结合超时和 eval 命令

    为了执行存储在变量中的命令eval使用命令 gt a echo e a nb wc l gt eval a 2 但如何才能与它结合起来呢 timeout命令 我尝试过以下操作 这给了我错误的输出 gt timeout 10 a a b wc
  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 我的 unix 脚本出了什么问题

    bin bash while echo n Player s name read name name ZZZ do searchresult grep name playername if searchresult 0 then echo
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 如何显示 zsh 函数定义(如 bash“type myfunc”)?

    如何在 zsh 中显示函数的定义 type foo没有给出定义 在bash中 bash function foo echo hello bash foo hello bash type foo foo is a function foo e
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任
  • 在bash中,是否有相当于“错误消息”的东西

    在 perl 中 您可以使用错误消息退出die some msg bash 中是否有等效的单个命令 现在 我正在使用命令来实现这一点 echo some msg exit 1 你可以很容易地自己推出 die echo 1 gt 2 exit
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 从 bash 从新的 Google Chrome 浏览器会话获取“用户代理”字符串

    我想要得到用户代理 HTTP 请求标头 https developer mozilla org en US docs Web HTTP Headers User Agent来自 bash 的新 Google Chrome 浏览器会话 刚刚打
  • .profile 无法从 Mac 终端运行

    我有一个 profile 文件 我正在终端中读取并使用别名 但在某些时候 别名由于没有明确的原因而停止工作 其他命令仍在工作 为了快速修复 我删除了 rm 并在用户目录中重新创建了 profile 文件 我可以看到 至少在该目录中没有 ba
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 有队列实现吗?

    任何人都可以建议使用 Go 容器来实现简单快速的 FIF 队列 Go 有 3 种不同的容器 heap list and vector 哪一种更适合实现队列 事实上 如果您想要的是一个基本且易于使用的 fifo 队列 slice 可以满足您所
  • 将相对符号链接转换为绝对符号链接

    如何在 bash 中递归地将相对符号链接转换为绝对符号链接 ln sf readlink f link link
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 bash 脚本中提取 XML 值 [重复]

    这个问题在这里已经有答案了 我正在尝试从 xml 文档中提取一个值 该文档已作为变量读入我的脚本中 原始变量 data is

随机推荐

  • 如何找到文本光标的全局位置?

    我想执行一个QMenu http qt nokia com doc 4 0 qmenu html文本光标位置处的对象QPlainTextEdit http doc trolltech com main snapshot qplaintext
  • 你最喜欢的 C++ 编码风格习语是什么 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 use_library('django','1.2')

    我正在学习在 Google App Engine 中进行开发 这是教程中的代码之一 http code google com appengine docs python gettingstarted usingwebapp html htt
  • 如何防止在 twitter bootstrap typeahead 插件中按 Enter 键提交

    我有一个输入文本 我应用它的预输入插件来建议项目 但是当我在输入文本上按 Enter 键时 它会提交表单 如何使用 twitter bootstrap typeahead 插件阻止表单提交 您可以通过向特定输入添加 ID 并简单地删除 En
  • git flow 发布选定的功能

    我正在尝试向我的团队介绍 Git 流程 我们是一个相当小的团队 而且非常敏捷 我们希望每天发布一次 这意味着我们测试当天所有更改的时间有限 业务团队希望能够控制正在发布的功能 尽管这并不理想 Git 流程似乎不能很好地适应这一点 从开发中删
  • 在 Android 中调整图片大小同时仍保持质量

    我想将图像文件大小减小到 100 KB 以下 同时保持图像质量 就像 Whatsapp 和 Facebook 所做的那样 我尝试了 stackoverflow 上几乎所有可用的 android 图像压缩代码 但这对我不起作用 现在我正在关注
  • C++14 中的递归 lambda 函数 [重复]

    这个问题在这里已经有答案了 在 C 11 中编写递归 lambda 函数有一个经常重复的 技巧 如下所示 std function
  • java.sql.Date 如何处理负日期?

    我遇到过这样的情况 当从数据库读取日期时 Java 运行时返回某种 反转 毫秒值 在java sql Date 毫秒值与天数大致相同 但从 0 年开始倒推 只需重新启动 Java 运行时即可解决该问题 但是 我发现 Java 几乎可以正确地
  • 如何在 Three.js 中实现 ShaderToy 着色器?

    寻找有关如何在 Threejs 中重新创建 ShaderToy 参数 iGlobalTime iChannel 等的信息 我知道 iGlobalTime 是自着色器启动以来经过的时间 我认为 iChannel 的东西是用于从纹理中提取 RG
  • 如何按最小增量更改 double

    是不是有什么东西坏了或者我不明白发生了什么 static String getRealBinary double val long tmp Double doubleToLongBits val StringBuilder sb new S
  • 为什么在 Scala 中使用 def 和 val ,反之亦然

    我知道这已经在其他帖子中讨论过 并且我了解使用之间的基本区别def and val def用于定义方法并且val以获得不可变的引用 我想通过问这个问题来完成的是了解是否还有更多的事情可以做def 它可以与 a 互换使用吗val 最近我尝试了
  • 分段错误处理程序中的分段错误

    Linux 下分段故障处理程序中发生的分段故障是否有一些定义的行为 是否会再次调用同一个处理程序 如果是 在所有平台上是否已定义等等 谢谢 答案取决于您如何安装信号处理程序 如果您使用已弃用的安装信号处理程序signal http linu
  • 如何防止div进出动画中的多次点击

    我想通过点击它来将 div 移入和移出 我只是像这样对 div 进行动画处理
  • 在 Bash 中如何查看字符串是否不在数组中?

    我试图在不添加额外代码 例如另一个 for 循环 的情况下执行此操作 我可以创建将字符串与数组进行比较的正逻辑 虽然我想要负逻辑并且只打印不在数组中的值 但本质上这是为了过滤掉系统帐户 我的目录中有这样的文件 admin user xml
  • SWIG 和 Python3 导入错误

    我用 C 编写了一个库 我使用SWIG http swig org为 Java Python 等生成绑定 我设法为这两种语言编写自定义类型映射等等 我还设法使用我的库 自定义协议 并与我用 C 编写的服务器 我用 Java 编写的客户端以及
  • 部署 Perl 应用程序

    部署 Perl 应用程序的最佳实践是什么 假设您正在部署到安装了少量 CPAN 模块的普通盒子上 理想的构建 部署方法是什么 Module Build ExtUtils MakeMaker 其他 我正在从那些针对大型应用程序重复执行此操作的
  • 如何使用 Office 2010 调试 Office 2007-addin

    我想开发一个适用于 Word 2007 和 Word 2010 的 Word 插件 因此 我在 Visual Studio 中创建了一个 Word 2007 插件项目 我的机器上 仅 安装了 Word 2010 当我尝试从 Visual S
  • 如何访问vagrant box laravel/homestead中的特定端口?

    我正在我的 vagrant laravel homestead 盒子上开发一个节点项目 一切正常 当我转到我的主机定义时 我可以访问该项目 etc hosts 192 168 10 10 project 但是 我正在尝试使用 webpack
  • android 是否可以在来电或去电时录制通话

    在android中 可以在不打开手机扬声器的情况下在来电 去电期间录制语音通话 我在android市场上看到过一个应用程序 由于它使用麦克风进行录音 因此在不打开扬声器的情况下无法正确记录对方的声音 可以通过其他技术来完成吗 final M
  • 从两个不同的脚本写入和读取 fifo

    我有两个 bash 脚本 一个脚本写入 fifo 第二个从 fifo 读取 但在第一个结束之后写入 但有些东西不起作用 我不明白问题出在哪里 这是代码 第一个脚本是 作者 bin bash fifo name myfifo Se non e