2014-06-16 67 views
0
我有理解下面的代碼行問題

..調用其他腳本從命令行在UNIX

/home/rmsbatch/autoscript/autorms.ksh dc_load_main.ksh -q belk_dc_load_tran_data.seq 

什麼正在這裏做什麼? 「-q」是什麼意思?什麼是 「.SEQ」 文件是指在UNIX中的 「belk_dc_load_tran_data.seq」

請詳細

autorms.ksh


#!/bin/ksh 
################################################################################ 
# Description : Execute RMS Jobs with Error Reporting 
# 
################################################################################ 
. /home/rmsbatch/.profile 
set -x 
LOG=/logs/IBM/AutoLogs 
CMNLOG=$LOG/BatchStatus_`date +"%y%m%d`.txt 

if [ "${1}" == "prepost" ] || [ "${1}" == "bprepost" ] 
then 
     exec > ${LOG}/Auto_${1}_${3}.log 2>&1 
else 
     exec > ${LOG}/Auto_${1}.log 2>&1 
fi 



function Error_Log 
{ 
# translate "\n" to "^" below 
v1=$(echo -n $1 | tr "\n" "^") 
v2=$(echo -n $2 | tr "\n" "^") 
echo $(hostname)"|"$(basename $CMD $PARAM3)"|"$(date +%m/%d/%y)"|"$(date +%H:%M:%S)"|"$v1"|"$v2 |grep "Failed" 
if [[ $? -eq 0 ]] 
then 
echo $(hostname)"|"$(basename $CMD $PARAM3)"|"$(date +%m/%d/%y)"|"$(date +%H:%M:%S)"|"$v1"|"$v2 | mail -s "RMS Batch Failed in PROD" [email protected],[email protected],[email protected],[email protected] 
fi 
echo $(hostname)"|"$(basename $CMD $PARAM3)"|"$(date +%m/%d/%y)"|"$(date +%H:%M:%S)"|"$v1"|"$v2 >> $CMNLOG 

} 




function RunBatch 
{ 
set -x 
       echo "Running the Batch or Script" 
       echo "Command" $CMD 
       if [[ $check -ne 1 ]] 
       then 
         ls $MMBIN/$CMD 

         if [ $? == 0 ] || [ $uRC -eq 0 ] 
         then 
           echo "------ Running the Command ------" 
           Error_Log "$(basename $CMD $PARAM3) Started" 
       if [ "${CMD}" == "prepost" ] || [ "${CMD}" == "bprepost" ] 
       then 
        ${MMBIN}/${CMD} $PARAM1 $PARAM3 $PARAM4 $PARAM5 
        echo $?| read VResult 
       else 
        cd $MMBIN 
        $SHOME/batch_wrapper.ksh ${CMD} $PARAM1 $PARAM3 $PARAM4 $PARAM5 
        echo $?| read VResult 
       fi 
       if [ $VResult -eq 0 ] 
       then 
        Error_Log "$(basename $CMD $PARAM3) Batch Completed Successfully" 
        VResult=0 
        return $VResult 
       else 
        cat $MMHOME/error/err.${CMD}*.`date +"%b_%d"`|tail -1|grep error  
        echo $error|read Error 
        echo `$SHOME/batch_wrapper.ksh ${CMD} $PARAM1 $PARAM3 $PARAM4 $PARAM5`|read Error1 
        Error_Log "$(basename $CMD $PARAM3) Failed with - $Error Error1"  
        return $VResult 
       fi 


         else 
           echo " Command not found in the Directory " 
           Error_Log "$(basename $CMD $PARAM3) Failed for Command Not Found" 
           VResult=99 
       return $VResult 
         fi 
       else 
         echo "------ Running the Command ------" 
         Error_Log "$(basename $CMD $PARAM3) Started" 
         $MMHOME/external/scripts/$CMD.ksh $PARAM1 $PARAM3 $PARAM4 $PARAM5 $PARAM6 $PARAM7 
         echo $?|read Result 
         VResult=$Result 
         if [ $VResult -eq 0 ] 
      then 
       Error_Log "$(basename $CMD $PARAM3) Batch Completed Successfully" 
       return $VResult 
      else 
       Error_Log "$(basename $CMD $PARAM3) Failed" 
       return $VResult 
      fi 
       fi 

} 


if [[ $# -gt 0 ]] 
then 
     echo $1|grep ksh 
     if [[ $? -ne 0 ]] 
     then 
       CMD=$1 
     else 
       echo $1|awk -F"." '{print $1}'|read CMD 
       check=1 
     fi 
     LOGIN=$UP 
     PARAM1=$2 
     PARAM3=$3 
     PARAM4=$4 
     PARAM5=$5 
     PARAM6=$6 
     PARAM7=$7 

     MMBIN=$MMHOME/oracle/proc/bin 
    SHOME=/home/rmsbatch/autoscript 
     echo " Shell Started the Command :" ${CMD} 
     echo " Parameters Passed are  :" $* 
     echo " MM Home Directory   :" $MMHOME 


    RunBatch 


else 
     echo "##############################################################################################################################" 
     echo "# Not Enough Parameter Passed Or Usage of Parameter is not Proper" 
     echo "# value to be Passed to the Current Shell is : " $# 
     echo "# Command being executed is : " $CMD 
     echo "# Usage of current command is given below " 
     echo "" 
     echo "" `$MMHOME/oracle/proc/bin/$1` 
     echo "##############################################################################################################################" 
     return 99 
fi 

回答

1

autorms.ksh可能是一個shell腳本,需要3個參數..

其中第一個看起來是另一個腳本(dc_load_main.ksh),但它只是一個猜測,並不一定是這種情況

二是-q這可能意味着什麼

第三個可能是另一種文件,但你不能告訴該文件應包含哪些作爲擴展是相當任意的,在Unix中沒有得到執行。

總之,你需要閱讀autorms.ksh才能知道任何事情。

+0

感謝mark for replying ..我更新了autorms.ksh代碼的問題.. 也請讓我知道exec> $ {LOG}/Auto _ $ {1} _ $ {3} .log 2 >&1是什麼意思? – redsoxlost