Chinaunix首页 | 论坛 | 博客
  • 博客访问: 915588
  • 博文数量: 194
  • 博客积分: 7991
  • 博客等级: 少将
  • 技术积分: 2067
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-09 22:03
文章分类

全部博文(194)

文章存档

2010年(8)

2009年(71)

2008年(109)

2007年(6)

我的朋友

分类:

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了。

 
sxg
 
阅读(1106) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~