Por que o cd não funciona no meu script de shell?

Por que o cd não funciona no meu script de shell?

RESOLVIDO

Estou tentando criar um script de shell em meu servidor Linux Amazon-EC2 que iniciará meu servidor Minecraft, mas o comando cd diz que não é possível encontrar o diretório ou arquivo quando tento mudar para o diretório em que o executável do servidor está. Observe que quase não tenho experiência com script de shell de qualquer tipo. Isso tem a ver com permissões na pasta em que este arquivo está localizado ou no próprio arquivo? O arquivo é denominado "startServer".

#!/bin/bash
cd /home/ec2-user/Minecraft
java -Xmx2048M -Xms2048M -jar minecraft_server.jar nogui

*Não salvei com uma extensão de arquivo. Eu devo? É preciso que seja?

Responder1

Para tornar um script executável, você precisa modificar as permissões do script para que ele seja executável.

O comando para alterar permissões no Linux ou UNIX échmod.

chmod +x ./name_of_your_script

Concederá permissão ao usuário atual para executar o script.

O #! no início do seu script indica ao shell interativo que o script deve ser interpretado por /bin/bash para que você realmente não precise adicionar uma extensão ao nome do arquivo. No entanto, é uma convenção comum anexar .sh a scripts de shell.

Responder2

Qual é exatamente a mensagem de erro? Meu palpite é que é:

cd: /Minecraft: No such file or directory

Isso acontecerá se HOME estiver indefinido e ~ expandir para a string vazia.

Responder3

O script precisará de permissões de execução para poder executá-lo; para fazer isso, cd para o diretório é armazenado e use:

chmod u+rwx startServer 

Eu não acho que esse seja o seu problema. Tente usar o caminho completo para o arquivo minecraft_server.jar em vez de usar cd:

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

informação relacionada