1. 程式人生 > >shell指令碼中賦值給變數中有空格, 導致命令執行失敗

shell指令碼中賦值給變數中有空格, 導致命令執行失敗

功能需求

統計指定時間程式傳送的資料量(按照發送時間)

這裡寫圖片描述

傳送時間格式2017-12-14 16:18:11, 本來向獲取小時格式

date +'%Y-%m-%d %H' --date="-1 hours"  
2017-12-14 15

統計命令為

dh=`date +'%Y-%m-%d %H' --date="-1 hours"`
cat $logfile |grep Local|grep $interType$year|grep $dh|grep $hour':'|grep 'Result=0' |wc -l

統計結果為0

原因: 由於dh中複製帶有空格

,導致統計失敗

解決: 將年月日,和小時拆開(grep $d|grep $hour':[0-5][0-9]:'

將
d=`date +'%Y-%m-%d' --date="-1 hours"`
cat $logfile |grep SdtpLog|grep $interType$year|grep $d|grep $hour':[0-5][0-9]:'|awk -F '/|=' 'BEGIN{a=0}{a=a+$5}END{print a}'