分类:
2008-01-11 11:47:56
采用管道实现自动程序交互
想象一个情景:你有一个控制台员工信息管理程序A,运行后会提示输入员工姓名,当用户输入姓名并按回车后,又提示输入性别……一系列询问完成之后,A才会向数据库中进行记录。这是一种交互性很强的程序。
如果你有一个员工信息列表,那么怎么样才能让A自动的将列表存入数据库呢?看完本文的例子大家就明白了。
例子源代码如下:
//test.c
#include
int main()
{
int a, b, c;
fscanf(stdin, "%d", &a);
printf("I got an integer a = %d\n", a);
fscanf(stdin, "%d", &b);
printf("I got an integer b = %d\n", b);
fscanf(stdin, "%d", &c);
printf("I got an integer a = %d\n", c);
return 0;
}
自动交互通过脚本实现:
#test.sh
#!/bin/sh
echo "Something is gonna to happen..."
(echo 111; echo 222; echo 333) | (./test)
#end of test.sh
执行结果:
[root@itc-205013 ~]# ./test.sh
Something is gonna to happen...
I got an inter a = 111
I got an inter b = 222
I got an inter a = 333
基本原理是采用管道,管道之前的部分需要用()圈起来,不然test只能收到333了。