解決了
我正在嘗試在 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 解釋,因此您實際上不需要在檔案名稱中新增副檔名。然而,將 .sh 附加到 shell 腳本是一種常見的約定。
答案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