在 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
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器