歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

UNIX中交互程序的自動執行


   在 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
Copyright © Linux教程網 All Rights Reserved