shell判断参数是否为空和日志输出

1.参数说明

参数说明
-n “$1”如果参数的第一个参数长度为0.结果返回true,否则返回false
-z “$1”如果参数的第一个参数长度为0.结果返回false,否则返回true
[ $? -eq 0 ]是判断if语句的上一个命令执行如果成功就执行if中的语句,注意:使用时要注意,if后面的中括号[ $? -eq 0 ],括号的两边需要有一个空格
>/dev/null将标准输出到了 /dev/null
2>&1表示标准错误,重定向到标准输入
>> 1.log将标准输出,追加到gmvHisDataProcess_$(date +%Y%m).log中

#!/bin/bash

#set java env
export JAVA_HOME=/opt/jdk/jdk1.8.0_111
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib.tools.jar

# 定义作业目录变量,日志目录变量,作业开始天和结束天
JOB_HOME=/opt/kettle/repository/gmv
LOG_PATH=/opt/kettle/log

if [ -n "$1" ] && [ -n "$2" ]
then
        startDate=$1
        finishDate=$2
elif [ -z "$1" ] && [ -z "$2" ]
then
        startDate=`date -d'1 day ago' +'%Y-%m-%d'`
        finishDate=`date -d'1 day ago' +'%Y-%m-%d'`
else
        exit
fi

#重刷历史订单退款数据 (即重刷base_order_goods和base_order_refund)
nohup /opt/kettle/data-integration/kitchen.sh -file=${JOB_HOME}/his/main.kjb -param:startDate="${startDate}" -param:finishDate="${finishDate}" -param:JOB_HOME="${JOB_HOME}" -level=Error >> ${LOG_PATH}/gmvHisData_$(date +%Y%m).log

#重刷历史gmv数据 (即重刷base_daily_sales_report和base_gmv_trend)
if [ $? -eq 0 ]
then
        echo "===结束时间:$(date '+%Y-%m-%d %H:%M:%S')===" >> ${LOG_PATH}/gmvHisData_$(date +%Y%m).log
        java -jar ${JOB_HOME}/jar/gmvHisDataProcess.jar  "${startDate}"  "${finishDate}"  >> ${LOG_PATH}/gmvHisDataProcess_$(date +%Y%m).log 2>&1  &&  echo "===结束时间:$(date '+%Y-%m-%d %H:%M:%S')===" >> ${LOG_PATH}/gmvHisDataProcess_$(date +%Y%m).log
fi

版权声明:本文为summer089089原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。