bash - 解析程序的标准输出并在完成后将其杀死

标签 bash ubuntu

我有一个程序 (linphonec),它需要人工输入 Ctrl-C 或 quit在标准输入以退出。但是,我需要在无人参与的批处理作业的上下文中运行它。

通过刮掉它的标准输出,我可以知道什么时候是退出的合适时间。有没有办法在程序启动时捕获进程id,然后继续解析它的stdout以确定调用`kill的适当时刻?

最佳答案

由于 stdin 的唯一输入是“exit”,因此我们可以在程序启动时提供此字符串。输入将卡在那里,直到您的程序将其取出(即调用 C 中的 scanf() 或 python 中的 input())。

./linphonec -cmd1 -cmd2... <<< 'quit'

使用<<< 'quit'被称为 here string .它有点等于类型 quit手动在标准输入中。由于没有特殊符号,<<< quit也可以。

关于bash - 解析程序的标准输出并在完成后将其杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758963/

相关文章:

bash - 是否可以使用 bash 脚本截断我现有的 crontab 文件?

linux - 如何在 bash 脚本中使用 yad?

php - 无法找到包 libapache2-mod-php7

linux - 如何在 Linux (ubuntu) 上安装 swi Prolog 的图形调试器

amazon-web-services - EC2 的 PuTTy 连接超时

c++ - 如何在 ubuntu 20.04 中预编译 <bits/stdc++.h> 头文件?

laravel - 如何将 ~/.composer/vendor/bin 目录放在你的 PATH 中?

ruby - 安装 Ruby gems 不适用于 Home Brew

bash - sed 错误提示 "extra characters after command"

bash - 削减Apache虚拟主机 block