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