解决了
我正在尝试在我的 Linux Amazon-EC2 服务器上创建一个 shell 脚本来启动我的 Minecraft 服务器,但是当我尝试切换到服务器可执行文件所在的目录时,cd 命令说找不到目录或文件。请注意,我几乎没有使用过任何类型的 shell 脚本。它是否必须具有此文件所在文件夹或文件本身的权限?该文件名为“startServer”。
#!/bin/bash
cd /home/ec2-user/Minecraft
java -Xmx2048M -Xms2048M -jar minecraft_server.jar nogui
*我没有使用文件扩展名保存它。我应该添加吗?有必要添加吗?
答案1
为了使脚本可运行,您需要修改脚本的权限以使其可执行。
在 Linux 或 UNIX 上更改权限的命令是chmod。
chmod +x ./name_of_your_script
将授予当前用户执行脚本的权限。
脚本开头的 #! 向交互式 shell 表明该脚本将由 /bin/bash 解释,因此您实际上不需要在文件名中添加扩展名。但是,在 shell 脚本后面附加 .sh 是一种常见的惯例。
答案2
错误信息到底是什么?我的猜测是:
cd: /Minecraft: No such file or directory
如果 HOME 未定义,就会发生这种情况,并且 ~ 扩展为空字符串。
答案3
该脚本需要执行权限才能运行;为此,请 cd 到存储目录并使用:
chmod u+rwx startServer
但我不认为这是你的问题。尝试使用 minecraft_server.jar 文件的完整路径,而不是使用 cd:
#!/bin/bash
java -Xmx2048M -Xms2048M -jar /full/path/to/Minecraft/minecraft_server.jar nogui