Bash 终端Minecraft服务器自动保存脚本

Bash 终端Minecraft服务器自动保存脚本,bash,Bash,这是之前关于Minecraft终端脚本的一个问题的后续问题,该脚本将启动一个具有1GB ram的服务器,并立即开始一个30分钟的循环,该循环将对服务器地图进行频繁备份 这是我目前正在使用的代码: cd /Users/userme/Desktop/Minecraft java -Xmx1024M -Xms1024M -jar minecraft_server.jar & bash -c 'while [ 0 ]; do cp -r /Users/userme/Desktop/Minecra

这是之前关于Minecraft终端脚本的一个问题的后续问题,该脚本将启动一个具有1GB ram的服务器,并立即开始一个30分钟的循环,该循环将对服务器地图进行频繁备份

这是我目前正在使用的代码:

cd /Users/userme/Desktop/Minecraft
java -Xmx1024M -Xms1024M -jar minecraft_server.jar & bash -c 'while [ 0 ]; do cp -r /Users/userme/Desktop/Minecraft/world /Users/userme/Desktop/A ;sleep 1800;done' 

显然,这个循环将把备份保存在名为“world”的目录“A”中。我是否可以对这段代码进行修改,使其基本上计算脚本生成的循环数量,然后将该计数应用到备份结束时。例如,
world5
,或
world12
。一个可以摆脱旧备份的修改也不错

为了更好的可读性,我把它分成了几行:

如果你想把它全部放回一行,你可以添加
返回适当的位置

counter=1
while [ 0 ] 
do 
    if [ -e /Users/userme/Desktop/A/world"$counter" ]; then
        rm -f /Users/userme/Desktop/A/world"$counter"
    fi
    counter=$((counter+1))
    cp -r /Users/userme/Desktop/Minecraft/world /Users/userme/Desktop/A/world"$counter" 
    sleep 1800
done

为什么你想把所有这些都放在一行中?这很有效!而不是使用;不过,我只是使用了一个符号,在后台运行它,同时启动server.jar。谢谢