本次是因爲需要創建定時任務,判斷SNMP服務的狀態。
通過以下代碼進行判斷
tmp=`/etc/init.d/snmpd status` snmpd_status=`echo $tmp | grep -Eo "running" ` if [ $snmpd_status = "running" ] then snmpd_status="running" else snmpd_status="stop" fi echo $snmpd_status
注:系統爲red hat 5.7和6.5
現在snmpd服務是正常運行中的。
我通過手動執行該腳本,得到的結果是running
但是隻要放到crontab,執行出來的就是stop
很是奇怪
後來,我在腳本里把每一個變量都打印出來看,發現crontab運行的言語環境爲中文。
但是我export出來的明顯是英文環境
一開始我沒有想到這個,因爲我手動執行和crontab使用的都是root賬號
之後,我通過在腳本前面加入export LENG="en_US",將腳本的執行環言語定爲英文後,執行的結果正常了。
對於環境變量中的言語變量,不知道爲什麼會出現在這樣的情況,有時間去研究下。如果有哪位大神知道的,請指點一二