내 쉘 스크립트에서 CD가 작동하지 않는 이유는 무엇입니까?

내 쉘 스크립트에서 CD가 작동하지 않는 이유는 무엇입니까?

해결됨

Linux Amazon-EC2 서버에서 Minecraft 서버를 시작하는 셸 스크립트를 만들려고 하는데, 서버 실행 파일이 있는 디렉터리로 변경하려고 하면 cd 명령에서 디렉터리나 파일을 찾을 수 없다는 메시지가 나타납니다. 저는 어떤 종류의 쉘 스크립트에 대해서도 경험이 거의 없습니다. 이 파일이 있는 폴더나 파일 자체에 대한 권한이 있어야 합니까? 파일 이름은 "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

현재 사용자에게 스크립트를 실행할 수 있는 권한을 부여합니다.

#! 스크립트 시작 부분은 대화형 쉘에 스크립트가 /bin/bash에 의해 해석된다는 것을 나타내므로 실제로 파일 이름에 확장자를 추가할 필요가 없습니다. 그러나 쉘 스크립트에 .sh를 추가하는 것이 일반적인 규칙입니다.

답변2

오류 메시지가 정확히 무엇인가요? 내 생각엔 다음과 같다.

cd: /Minecraft: No such file or directory

HOME이 정의되지 않고 ~가 빈 문자열로 확장되면 이런 일이 발생합니다.

답변3

스크립트를 실행하려면 실행 권한이 필요합니다. 이를 수행하려면 디렉토리에 대한 CD가 저장되고 다음을 사용하십시오.

chmod u+rwx startServer 

나는 이것이 당신의 문제라고 생각하지 않습니다. cd를 사용하는 대신minecraft_server.jar 파일의 전체 경로를 사용해 보십시오:

#!/bin/bash
java -Xmx2048M -Xms2048M -jar /full/path/to/Minecraft/minecraft_server.jar nogui

관련 정보