為什麼 cd 在我的 shell 腳本中不起作用?

為什麼 cd 在我的 shell 腳本中不起作用?

解決了

我正在嘗試在 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

相關內容