用于等待部分进程的 Bash 脚本

用于等待部分进程的 Bash 脚本

我正在尝试使用 bash 脚本在命令行中运行程序。这个程序非常简单。我从命令行调用它,然后x输入它1,,,,,filename567 我遇到了一些麻烦:

  1. 在正确的时间提供正确的输入,即等待输入 5,直到输入 1 启动的进程完成后
  2. 确保输入实际上到达程序本身。

程序在启动后请求输入,然后我可以从命令行输入它们,所以我想我可以使用 bash 脚本来做到这一点。 (这是我的第一个 bash 脚本。在解决这个问题之前我什至没有说“Hello world”。)

我尝试过使用 await并查看了until类似的东西。你们有什么建议吗?

答案1

我还不能发表评论,所以将其作为答案发布,无论多么不完整,因为OP没有发布足够的数据。

您可能想调查一下expect。它本身就是一种脚本语言,但可以混合使用bash(尽管不鼓励)。最简单的形式是这样的:

#!/usr/bin/expect
expect "Prompt: "
send "my input\r"
expect eof

\r意味着return(我认为),只是一把enter钥匙。

因此,例如expect您的程序的脚本可能如下所示:

#!/usr/bin/expect
expect "Provide 1: "
send "1\r

expect "Provide filename: "
send "foobar.txt\r"

expect "Provide 5: "
send "5\r"
# and so on...
expect eof

请提供您迄今为止拥有的代码以及程序“x”的示例输出提示,以便我们可以根据您的需求定制答案。

相关内容