gpt4 book ai didi

Bash 脚本无法在新的专用服务器上运行

转载 作者:行者123 更新时间:2023-12-04 05:27:54 25 4
gpt4 key购买 nike

最近我迁移到了运行在 上的新专用服务器。相同 操作系统 - FreeBSD 8.2。我获得了 root 帐户访问权限,并且所有权限都已正确设置。

我的问题是,我在旧服务器上运行的 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" yet@another.com
fi

我不是真的在 bash 中编码,所以我不知道为什么会发生这种情况......

最佳答案

Bourne shell ( sh ) 不支持数组,这就是您在使用时遇到此错误的原因

sh script.sh

使用 bash相反
bash script.sh

备注 : 我怀疑 sh script.sh在旧服务器上工作,因为 sh链接到 bash那里。

关于Bash 脚本无法在新的专用服务器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com