gpt4 book ai didi

linux - 在 UNIX 中从命令行调用另一个脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:21 25 4
gpt4 key购买 nike

我在理解以下代码行时遇到问题..

/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 才能了解所有内容。

关于linux - 在 UNIX 中从命令行调用另一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com