¿Cómo es que cd no funciona en mi script de shell?

¿Cómo es que cd no funciona en mi script de shell?

SOLUCIONADO

Estoy intentando crear un script de shell en mi servidor Linux Amazon-EC2 que iniciará mi servidor Minecraft, pero el comando cd dice que no puede encontrar el directorio o el archivo cuando intento cambiar al directorio en el que se encuentra el ejecutable del servidor. Tenga en cuenta que casi no tengo experiencia con scripts de shell de ningún tipo. ¿Tiene que ver con los permisos en la carpeta en la que se encuentra este archivo o con el archivo en sí? El archivo se llama "startServer".

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

*No lo guardé con una extensión de archivo. ¿Debería? ¿Tiene que ser así?

Respuesta1

Para que un script sea ejecutable, debe modificar los permisos del script para que sea ejecutable.

El comando para cambiar permisos en Linux o UNIX eschmod.

chmod +x ./name_of_your_script

Otorgará permiso al usuario actual para ejecutar el script.

El #! al comienzo de su secuencia de comandos indica al shell interactivo que la secuencia de comandos debe ser interpretada por /bin/bash, por lo que realmente no necesita agregar una extensión al nombre del archivo. Sin embargo, es una convención común agregar .sh a los scripts de shell.

Respuesta2

¿Cuál es exactamente el mensaje de error? Supongo que es:

cd: /Minecraft: No such file or directory

Esto sucederá si HOME no está definido y ~ se expande a la cadena vacía.

Respuesta3

El script necesitará permisos de ejecución para poder ejecutarlo; Para hacer esto, cd se almacena en el directorio y usa:

chmod u+rwx startServer 

Aunque no creo que este sea tu problema. Intente usar la ruta completa al archivo minecraft_server.jar en lugar de usar cd:

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

información relacionada