Почему 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 +x ./name_of_your_script

Предоставлю текущему пользователю разрешение на выполнение скрипта.

#! в начале вашего скрипта указывает интерактивной оболочке, что скрипт должен интерпретироваться /bin/bash, поэтому вам на самом деле не нужно добавлять расширение к имени файла. Однако общепринятым соглашением является добавление .sh к скриптам оболочки.

решение2

Что именно означает сообщение об ошибке? Я предполагаю, что это:

cd: /Minecraft: No such file or directory

Это произойдет, если HOME не определено, а ~ расширяется до пустой строки.

решение3

Для запуска скрипта потребуются права на выполнение; для этого перейдите в каталог, в котором он хранится, и используйте:

chmod u+rwx startServer 

Я не думаю, что это ваша проблема. Попробуйте использовать полный путь к файлу minecraft_server.jar вместо cd:

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

Связанный контент