我有一个程序 (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/