簡體   English   中英

在UNIX中從命令行調用另一個腳本

[英]Calling another Script from Command Line in 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" rms_app_support@belk.com,bandrest@in.ibm.com,vanarsda@us.ibm.com,wgwinslo@us.ibm.com
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

autorms.ksh可能是一個帶3個參數的shell腳本...

第一個看起來像是另一個腳本(dc_load_main.ksh),但這只是一個猜測,不一定如此

第二個是-q ,可能意味着什么

第三個可能是另一個文件,但是由於擴展名是任意的並且在Unix中沒有強制執行,因此您無法確定文件應包含什么內容。

簡而言之,您需要閱讀autorms.ksh才能完全了解任何內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM