最近有個定時執行的腳本,校驗服務是否在啟動狀態
寫好腳本總是報錯
#!/bin/sh # 在這修改程序名和程序所在目錄,其他不用改 name="carte" path="/app/bigdata/data-integration/" pid=`ps -A |grep $name| awk '{print $1}'` now=`date "+%Y-%m-%d %H:%M:%S"` # 檢測是否在運行 if [ ! $pid ] then echo "$now $name is not running, start it now..." # 啟動程序命令 cd $path nohup /app/bigdata/data-integration/carte.sh /app/bigdata/data-integration/pwd/carte-config-master-8080.xml >> /data/bigdata/kettle/log/spoon.log 2>&1 & new_pid=`ps -A |grep $name| awk '{print $1}'` # 檢測是否啟動成功 else echo "$now $name is running, pid is $pid" fi
結果sh執行的時候總是報錯
關於"行18: 未預期的符號 `fi' 附近有語法錯誤"
然后問人得知,腳本規范嚴重
於是嘗試下列方法,終是成功
sed -i 's/\r$//' xxxx.sh