• shell输出固定格式的文件


    #!/bin/sh
    #===============================================================================
    # SCRIPT ID : 
    # SCRIPT NAME : 
    # CREATE DATE : 
    # AUTHOR : 
    # COPYRIGHT : 
    # VARIABLES
    #===============================================================================
    #===============================================================================
    # 环境设置
    #===============================================================================
    ##### 变量定义 #####
    #JOB ID
    JOBID=`basename $0`;export JOBID
    
    STEPID="";export STEPID
    #
    FILE_PATH="/xxxx/";export FILE_PATH
    #
    BIZINIT="BIZINIT";export BIZINIT
    #
    BIZCOMMON="BIZCOMMON";export BIZCOMMON
    #
    REC_CNT="";export REC_CNT
    #等待时间
    WAIT_TIME="180";export WAIT_TIME
    #循环次数
    REPEAT_COUNT="5";export REPEAT_COUNT
    
    #REDER fileName
    READER_FILE="xxxx"; export READER_FILE
    #REDER filePath
    READER_DIR="/xxxx/"; export READER_DIR
    #OF
    OF_FILE="xxxx";export OF_FILE
    #OF
    OF_DIR="/xxxxx/";export OF_PATH
    
    RECSIZE=363;export RECSIZE
    
    #===============================================================================
    # 
    #===============================================================================
    STEPID="00"
    #--- ---
    DATE=`date +"%Y/%m/%d %H:%M:%S"`
    if [ -f ${FILE_PATH}${BIZINIT} ]
    then
    . ${FILE_PATH}${BIZINIT}
    ret=$?
    if [ ${ret} -ne 0 ]
    then
    echo "${DATE},${JOBID},Exe Error ${BIZINIT} [Return Code - ${ret}],${STEPID}"
    exit ${JOB_EXIT_ERROR}
    fi
    else
    echo "${DATE},${JOBID},Not Exist ${BIZINIT},${STEPID}"
    exit ${JOB_EXIT_ERROR}
    fi
    #--- ---
    DATE=`date +"%Y/%m/%d %H:%M:%S"`
    if [ -f ${FILE_PATH}${BIZCOMMON} ]
    then
    . ${FILE_PATH}${BIZCOMMON}
    ret=$?
    if [ ${ret} -ne 0 ]
    then
    echo "${DATE},${JOBID},Exe Error ${BIZCOMMON} [Return Code - ${ret}],${STEPID}"
    exit ${JOB_EXIT_ERROR}
    fi
    else
    echo "${DATE},${JOBID},Not Exist ${BIZCOMMON},${STEPID}"
    exit ${JOB_EXIT_ERROR}
    fi
    #===============================================================================
    # job start
    #===============================================================================
    ##### JOB log start #####
    doLogWrite "INFO, JOB START"
    #===============================================================================
    # Step10 IF file check
    #===============================================================================
    STEPID="10"
    #step log 
    doLogWrite "INFO, STEP${STEPID} START"
    
    #--- dateFile check ---
    CNT=0
    while :
    do
    if [ -f ${READER_DIR}${READER_FILE} ]
    then
    break
    fi
    
    CNT=`expr ${CNT} + 1`
    doLogWrite "INFO, Repeat Count ${CNT}"
    if [ "${CNT}" -eq "${REPEAT_COUNT}" ]
    then
    break
    else
    sleep ${WAIT_TIME}
    fi
    done
    #--- 处理结果判断 ---
    case ${CNT} in
    #存在的情况下
    ${REPEAT_COUNT}) doLogWrite "ERROR, Not Exist ${READER_FILE}"
    exit ${JOB_EXIT_ERROR};;
    #不存在的情况
    *) doLogWrite "INFO, Exist ${READER_FILE}"
    esac
    
    #--- file create start ---
    ACD_CSS='A'
    
    REC_ID='TYI'
    
    PLACE_CD='010'
    
    YMD_TODAY=`date +"%Y%m%d"`
    DATE=`date +"%Y%m%d"`
    echo "当前系统时间=${YMD_TODAY}">> ${LOG_PATH}/${JOBID}_${DATE}.log
    
    SCHDL_TODAY='A'
    
    YMD_PREV=`date +%Y%m%d -d "-1 day"`
    DATE=`date +"%Y%m%d"`
    echo "系统时间前一天=${YMD_PREV}">> ${LOG_PATH}/${JOBID}_${DATE}.log
    
    TMP_DATE=`date +%Y%m01`
    CLOSING_YMD_PREV=`date -d"$TMP_DATE last day" +%Y%m%d`
    DATE=`date +"%Y%m%d"`
    echo "上个月最后一天=${CLOSING_YMD_PREV}">> ${LOG_PATH}/${JOBID}_${DATE}.log
    
    CLOSING_YMD=`date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d"`
    DATE=`date +"%Y%m%d"`
    echo "本月最后一天=${CLOSING_YMD}">> ${LOG_PATH}/${JOBID}_${DATE}.log
    
    TMP_DATE=`date -d '2month' +%Y%m01`
    CLOSING_YMD_NEXT=`date -d "$TMP_DATE last day" +%Y%m%d`
    DATE=`date +"%Y%m%d"`
    echo "下一月最后一天=${CLOSING_YMD_NEXT}">> ${LOG_PATH}/${JOBID}_${DATE}.log
    
    INTVL_SPACE=' '
    
    WORK_BIT='X'
    YMD_NEXT='';
    YMD='';
    
    #明天    CHAR    8    YMD_NEXT
    TMP_DATE=`date +"%Y%m%d"`
    YMD=`grep "${TMP_DATE}" ${READER_DIR}${READER_FILE}`
    echo "YMD===="$YMD
    if [ ${YMD} ]
    then
    YMD_NEXT=`date +%Y%m%d -d "+2 day"`
    
    else 
    YMD_NEXT=`date +%Y%m%d -d "+1 day"`
    fi
    echo "=${YMD};===${YMD_NEXT}">> ${LOG_PATH}/${JOBID}_${TMP_DATE}.log
    echo ${ACD_CSS}${REC_ID}${PLACE_CD}${YMD_TODAY}${SCHDL_TODAY}${YMD_PREV}${YMD_NEXT}${CLOSING_YMD_PREV}${CLOSING_YMD}${CLOSING_YMD_NEXT}"${INTVL_SPACE}"${WORK_BIT}>${OF_DIR}${OF_FILE}
    FOOTER_SPACE=' '
    echo ${YMD_TODAY}'FNSSTYIO 000000010362'"${FOOTER_SPACE}">>${OF_DIR}${OF_FILE}
    
    #cat ${READER_DIR}${READER_FILE} | while read YMD
    #do
    #    if [ "${YMD}" -eq "${TMP_DATE}" ]
    #    then
    #    YMD_NEXT=`date +%Y%m%d -d "+2 day"`
    #    
    #    else 
    #    YMD_NEXT=`date +%Y%m%d -d "+1 day"`
    #    fi
    #    echo "文件中的日期=${YMD};明天===${YMD_NEXT}"
    #    echo ${ACD_CSS}${REC_ID}${PLACE_CD}${YMD_TODAY}${SCHDL_TODAY}${YMD_PREV}${YMD_NEXT}${CLOSING_YMD_PREV}${CLOSING_YMD}${CLOSING_YMD_NEXT}"${INTVL_SPACE}"${WORK_BIT}>${OF_DIR}${OF_FILE}
    #    FOOTER_SPACE=' '
    #    echo ${YMD_TODAY}'FNSSTYIO 000000010362'"${FOOTER_SPACE}">>${OF_DIR}${OF_FILE}
    #done
    
    #check 
    FILESIZE=`ls -l ${OF_DIR}${OF_FILE}|awk '{print $5}'`
    DATE=`date +"%Y%m%d"`
    echo "FILE SIZE ="${FILESIZE} >> ${LOG_PATH}/${JOBID}_${DATE}.log
    if [ `expr ${FILESIZE} % ${RECSIZE}` -ne 0 ]
    then
    DATE=`date +"%Y%m%d"`
    echo "${DATE},${JOBID}, error [Return Code - 1],${STEPID}"
    echo ${OF_FILE}"文件长度不对!!" >> ${LOG_PATH}/${JOBID}_${DATE}.log
    exit ${JOB_EXIT_ERROR};
    fi
    
    #--- 结果判断 ---
    ret=$?
    case ${ret} in
    
    0) doLogWrite "INFO, ${OF_FILE} create Success";;
    
    1) doLogWrite "FATAL, ${OF_FILE} create Fail"
    exit ${JOB_EXIT_ERROR};;
    2) doLogWrite "WARN, ${OF_FILE} create Warning End";;
    esac
    doLogWrite "INFO, ${JOBID} End"
    #===============================================================================
    # end
    #===============================================================================
    STEPID="99"
    
    doLogWrite "INFO, STEP${STEPID} END"
    
    exit ${JOB_EXIT_NORMAL}
  • 相关阅读:
    剑指offer-面试题11-旋转数组的最小数字-二分法
    剑指offer-基础练习-快速排序-排序
    剑指offer-面试题10-斐波那契数列-递归循环
    剑指offer-面试题9-用两个栈实现队列-栈和队列
    剑指offer-面试题8-二叉树的下一个节点-二叉树
    剑指offer-面试题7-重建二叉树-二叉树
    Android手势识别总结
    Android点击Button按钮的四种事件监听方法总结
    Android点击EditText文本框之外任何地方隐藏键盘的解决办法
    spring boot 热部署
  • 原文地址:https://www.cnblogs.com/xuhewei/p/9638926.html
Copyright © 2020-2023  润新知