最近我已经迁移到新的专用服务器上运行操作系统相同-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