2017年3月27日 星期一

用 $(()) 做運算出現 value too great for base (error token is "08") 錯誤訊息

最近整理了一下檢查Linux伺服器的程序Script,有些服務是晚上00:00 ~08:00是不執行的,這樣一來,若每隔10分鐘就檢查一次的話,晚上就會有一堆報錯的郵件通知,這樣也不好,就跟狼來了是一樣情況。
為了避開該時段,因此寫了一段SCRIPT

其中一段是為了檢查現在的時間
TimeHour=`date +%H` #現在的小時 01-24
TimeMin=`date +%M` #現在的分鐘 01-59
setTimeStart='08:00'
setTimeEnd='24:00'
TSH=`echo $setTimeStart|awk -F: '{print $1}'` #取出08:00 的08
TSM=`echo $setTimeStart|awk -F: '{print $2}'` #取出08:00 的00
TEH=`echo $setTimeEnd|awk -F: '{print $1}'`  #取出24:00的24
TEM=`echo $setTimeEnd|awk -F: '{print $2'}`  #取出24:00的00

if ( [[ ${TimeHour} -gt ${TSH} ]] && [[ ${TimeHour} -lt ${TEH} ]] ) ; then
結果
[[ 15 -gt 08 ]]
錯誤訊息
[[: 08: value too great for base (error token is "08")
上網查了一下
http://blog.xuite.net/jyoutw/xtech/30862650

http://stackoverflow.com/questions/24777597/shell-script-error-value-too-great-for-base-error-token-is-08#comment38451327_24777667

原來是因為Linux Script 把 08、09 當做特殊運算符號了
因此要把檢查的那一段改成
if   ( [[ ${TimeHour#0} -gt ${TSH#0} ]] && [[ ${TimeHour#0} -lt ${TEH#0} ]] ) ; then
就可以囉

2017年3月24日 星期五

win 10 輸入法問題 預設已改為英數 開機時卻不是英數

參考來源:
https://answers.microsoft.com/zh-hant/windows/forum/windows_10-ime/win-10/198515cc-3414-4815-b9cb-7844b96981da


試試控制台的語言裡的進階設定
把切換輸入法的 " 讓我為每個應用程式視窗設定不同的輸入法 " 勾起來
然後再把預設輸入模式也改成 "英數模式"