我有一个用C编写的程序,其操作类似于以下输出。
WELCOME TO PROGRAM.
Hit 1 to do task 1.
Hit 2 to do task 2.
Hit q to quit.
我需要的是一个启动程序的bash shell脚本,然后将1,2和q输入到程序中,这样我就可以在一个命令中测试所有功能。
我认为它看起来类似于以下
#!/bin/bash
./start kernel
1
2
q
答案 0 :(得分:4)
您可以使用“此处文档”。语法如下所示:
./start kernel <<EOF
1
2
q
EOF
“EOF”可以是您想要的任何唯一单词,只要它不是您在输入中实际需要的东西。
答案 1 :(得分:2)
通常,您使用expect来测试这些类型的应用程序。
答案 2 :(得分:1)
您可以将输入保存在文本文件中 - input.txt并以这种方式执行您的程序:./program < input.txt
答案 3 :(得分:1)
我这样做:
#! /bin/bash printf "1\n2\nq\n" | ./start kernel
答案 4 :(得分:0)
你可以把shell脚本想象成它们......只是在一个(虽然是新的)shell中执行每一行。
执行此类输入的一种简单方法是,假设[your program]
接受stdin,则为:
#!/bin/bash
echo "1" | [your program] > [logfile1]
echo "2" | [your program] > [logfile2]
echo "q" | [your program] > [logfileq]