这是我参加 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