使用 bash 脚本运行交互式程序

使用 bash 脚本运行交互式程序

这是我参加 bash 的第一天。也许这个问题已经被问过,但我试过谷歌,但结果是空的。也许是因为我不知道如何表达我的问题。

我有一个自定义/内部 Linux 程序,它会提示最终用户一系列问题......并最终使用这些问题来设置一些服务器。现在我想自动执行此操作,以便 bash 脚本调用 bin 文件并提供静态答案。理想情况下,我想按照询问的顺序将答案保存在文件中,然后将其提供给程序。

现在,我一直在研究读取文件的示例脚本。但我找不到结合使用文件输入和为程序提供答案的示例。

任何指示将不胜感激。

编辑1

我尝试执行以下操作:

#!/bin/bash
echo "This script is about to call mytestapp"
mytestapp
printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n
~

当我运行这个程序时,“mytestapp”程序启动,但它位于第一个问题处,等待如下输入:

dev1:~# sh /tmp/test_wrapper.sh 
This script is about to call mytestapp
Enter the 3-letter location code (e.g. usa):

并且脚本中的 printf 语句永远不会生效。

编辑2

我发现了我的错误。需要将参数通过管道传输到应用程序中:

 printf 'lab\nci1\n6cr\n197\n0\n252\n888\n4\n\nAmerica/Toronto\n' | mytestapp

答案1

您可以使用您的printf命令,但使用命令通常更容易理解和维护此处文档:

mytestapp <<EOF
lab
i1
6cr
197
0
252
888
4

America/Toronto
EOF

相关内容