我有一个很好用的脚本……但如果没有人在线,我不希望它做任何事情。我查看了有关如何检查 str 是否不在变量中的所有文档,但它总是抛出相同的错误,我认为这可能是其他错误,但实际上除了在底部添加 fi 之外没有其他任何内容对于新的 if 语句来检查是否没有用户在线...
错误:startAnnouncement.sh: 44: [[: not found
#!/bin/bash
checkServer=$(/etc/init.d/minecraft status)
checkUsers=$(/etc/init.d/minecraft command list)
cd /.smc
# Is the server even running?
if [[ $checkServer =~ "is running" ]]; then
#Is anyone online to even see the message...?
if [[ ! $checkUsers =~ "are 0 out" ]]; then
# No count file? Create it.
if [ ! -f /.smc/lastAnnouncement.txt ]; then
echo 0 > /.smc/lastAnnouncement.txt
fi
# Load count
lastAnn=$(cat /.smc/lastAnnouncement.txt)
# ANNOUNCEMENTS
announcement[0]='Dont forget to check out http://fb.com/pyrexiacraftfans for news and updates'
announcement[1]='Use our Facebook page to request land protection! Visit http://fb.com/pyrexiacraftfans'
announcement[2]='Stay tuned for the announcement of our spawn build competition soon on our Facebook page!'
announcement[3]='We have upgraded the server with mcMMO and Essentials Economy! Stay tuned for shop openings!'
announcementText=${announcement[$lastAnn]}
# Send announcement
sendAnnouncement=$(/etc/init.d/minecraft command say $announcementText)
# Next announcement count
((++lastAnn))
# Write next announacment count
# Should we restart announcement que?
if [ $lastAnn -gt $((${#announcement[@]}-1)) ]; then
echo 0 > /.smc/lastAnnouncement.txt
else
echo $lastAnn > /.smc/lastAnnouncement.txt
fi
fi
fi