.sh 未运行且未出现错误

sma*_*189 0 bash scripts .sh

我尝试创建一个 .sh 文件来检查服务器是否正在运行以及是否启动它。我没有从这个脚本中得到任何回声或任何失败,但它没有运行。有人可以帮我解决这个问题或更好的方法来纠正它。我不是程序员,我只是编辑了一些其他脚本来获得它。

JAVA="java -Xms512M -Xmx3072M -XX:PermSize=128m -jar FTBServer.jar nogui"
DIR="/home/jon/FTB/FTBnew"

if [ "$1" = start ] ; then
    if ps -ef | grep FTBServer.jar | grep -v -q grep ; then
        echo "Minecraft is already running"
    else
        echo "Starting!" && cd $DIR && screen -dmS minecraft $JAVA
        sleep 7
        if ps -ef | grep minecraft_server.jar | grep -v -q grep ; then
            echo "Minecraft server started successfully"
        else
            echo "Minecraft server failed to start"
        fi
    fi
fi
Run Code Online (Sandbox Code Playgroud)

这就是我得到的,当我运行它时

root@FTB:/home/jon/FTB/FTBnew# bash Check.sh
root@FTB:/home/jon/FTB/FTBnew#
Run Code Online (Sandbox Code Playgroud)

gle*_*man 5

您的所有逻辑都在一个if [ "$1" = start ]块中,因此如果您不在命令行上提供该参数,您的脚本将不会执行任何操作。

您应该首先验证参数:

if [ $# -ne 1 ] || [ "$1" != "start" ]; then
    echo "usage: $0 start"
    exit 1
else 
    # your stuff here
fi
Run Code Online (Sandbox Code Playgroud)