2017-08-17 68 views
0

我正在嘗試爲Ubuntu編寫一個shell腳本,它檢查Teamspeak-server狀態並對它們做出反應。通過Shellscript檢查Teamspeak狀態(Ubuntu)

這是我的實際版本:

a=$(sh /home/teamspeak3/ts3/teamspeak3-server_linux_amd64/ts3server_startscript.sh status) 
echo "$a" 
if [ "$a" -ne "Server is running"] 
then 
echo "..." 
fi 
exit 0 

這是我的實際輸出(和問題):

[email protected]:~$ ./keepAlive.sh 
Server is running 
./keepAlive.sh: line 8: syntax error: unexpected end of file 

(文字 「服務器正在運行」 是從回聲輸出「$ A 「)。

我不明白爲什麼會出現語法錯誤... 我檢查了MSDOS結束標誌的文件。

有什麼想法嗎?

回答

0

你在丟掉了最後括號前面的空間你的if語句

#!/bin/bash 
a=$(sh /home/teamspeak3/ts3/teamspeak3- 
server_linux_amd64/ts3server_startscript.sh status) 
echo "$a" 
if [ "$a" -ne "Server is running" ]; then 
    echo "..." 
fi 
exit 0 

另外,我建議增加一個家當,最後,在調試模式下運行該腳本(bash的-x)找到出了什麼問題。如果這些都不適合你,請嘗試Shell Check,至少對於語法錯誤是。