用于测试命令行程序的Shell脚本

时间:2010-12-03 00:50:24

标签: c bash scripting

我有一个用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

5 个答案:

答案 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]