最近我已經遷移到新的專用服務器上運行操作系統相同-FreeBSD 8.2。我有一個root帳戶訪問權限,並且所有權限都已正確設置。Bash腳本不能在新的專用服務器上工作
我的問題是,在bash腳本我是在舊服務器上運行,那麼在新機器上不工作,運行腳本時出現的唯一的錯誤是:
# sh script.sh
script.sh: 3: Syntax error: word unexpected (expecting ")")
下面是代碼本身:
#!/usr/local/bin/bash
PORTS=(7777:GAME 11000:AUTH 12000:DB)
MESSG=""
for i in ${PORTS[@]} ; do
PORT=${i%%:*}
DESC=${i##*:}
CHECK=`sockstat -4 -l | grep :$PORT | awk '{print $3}' | head -1`
if [ "$CHECK" -gt 1 ]; then
echo $DESC[$PORT] "is up ..." $CHECK
else
MESSG=$MESSG"$DESC[$PORT] wylaczony...\n"
if [ "$DESC" == "AUTH" ]; then
MESSG=$MESSG"AUTH is down...\n"
fi
if [ "$DESC" == "GAME" ]; then
MESSG=$MESSG"GAME is down...\n"
fi
if [ "$DESC" == "DB" ]; then
MESSG=$MESSG"DB is down...\n"
fi
fi
done
if [ -n "$MESSG" ]; then
echo -e "Some problems ocurred:\n\n"$MESSG | mail -s "Problems" [email protected]
fi
我真的不代碼在bash,所以我不知道爲什麼這個happend ...
我也這樣做了 - 輸出:'#script.sh script.sh:找不到命令.'也嘗試使用此命令運行腳本:'。/ script.sh',但輸出與上面相同。 – Scott
Scott,您需要將它作爲./script.sh運行的原因是當前目錄不在PATH中。 PATH環境變量告訴shell要搜索命令的目錄。你可以(雖然這是一個壞主意,出於安全原因)添加「。」到PATH,然後shell會搜索你所在的目錄。 – Nick