溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

line 40: 09: value too great for base (error token is "09")

發布時間:2020-08-11 23:51:46 來源:ITPUB博客 閱讀:323 作者:running_life 欄目:建站服務器
os:rhel6.8 2.6.32-642.el6.x86_64

    今天在測試編寫的redis數據庫的ping檢測腳本時報了一個錯誤“./redis_ping.sh: line 40: 09: value too great for base (error token is "09")”,問了度娘,說是因為shell中的雙括號運算符會將0開頭的數字當做8進制來計算,所以會報錯,09比基數大。腳本中用到雙括號運算符的地方是處理日期時分秒的地方,如下:
cur_date=`date "+%Y-%m-%d %H:%M:%S"`---獲取格式化時間
cur_hour_m2=$(($((${cur_date:11:2}+0))%2))---截取字符串,并用雙括號運算符使之與0相加(為了去掉占位0,通常是使用let,expr等加0),但是事與愿違,恰好雙括號運算符對于0開頭的數字不能當做十進制計算
cur_min=$((${cur_date:14:2}+0))--截取字符串,并加0
cur_sec=$((${cur_date:17:2}+0))--截取字符串,并加0

修改為:
cur_hour=$(($(date +%-H)%2))--模2,也就是控制2小時執行一次
cur_min=$(date +%-M)
cur_sec=$(date +%-S)

這個腳本的思路是,死循環,每3秒ping一次redis集群中的所有服務器,如果有問題就寫預警信息,如果全部正常,那么沒2小時也寫一次預警信息,代表ping腳本的心跳正常。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女