2017-08-17 36 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,至少对于语法错误是。