UNIX中交互程序的自动执行

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在 UNIX 系统中,执行交互程序,要求用户通过键盘输入相应数据,完成相应的操作。有时这种交互操作,输入的内容有一定的规律可循,且输入的数据较大。这种操作,用户感到枯燥无味,费工费时,容易产生疲劳,差错在所难免。如在我单位人保系统财务数据集中过程中,要逐月逐分公司生成财务数据上报,执行程序 stmu3, 出现画面1;

选 B 执行数据传送和接收,出现画面2;

选 A 生成数据传送文件,出现画面3;

按回车:出现画面4。

用户输入 /tmp,将生成的上报数据文件放在UNIX的 /tmp 目录下,接着按回车键结束操作。

以上是对一个公司的一个月的数据进行的操作。现在要对所辖所有分公司,同时从2000年1月到2001年6月共18个月全部要进行相应的操作,因此工作量较大。

对这些相同的操作,能否将它存放在一个文本文件中,利用UNIX中的输入输出重定向的功能,自动执行上面的操作呢?本人经过实践,成功地解决了这个问题,现介绍如下:

1.根据上述操作,编写文本文件 stmu3_cmd 如下:

BA

/tmp

在用 vi 编辑时,要按照原来按键顺序,忠实地记录。

2.在用户的HOME目录下,执行命令:

stmu3 < stmu3_cmd

以上实现了一个公司一个月的数据的生成工作。如要对所辖公司实现上述同一操作,则需对公司进行循环。

假如各公司对应一个目录,如下:

tj0801

tj0802

tj0821

......

tj0885

3.对公司进行循环:

HHOME=/progb

export HHOME

cd HHOME

for I in tj*

do

cd $HHOME/$I

stmu3 < stmu3_cmd

done

要对月份进行循环,可将要生成的月份放在文件 sys_date 中,如:

20010101

20010201

20010301

......

20011201

4.对月份进行循环:

HHOME=/progb

export HHOME

cd HHOME

for j in `cat sys_date`

do

for i in tj*

do

cd $HHOME/$I

echo $j > sysdate

stmu3 < stmu3_cmd

done

done

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航