Warum funktioniert cd in meinem Shell-Skript nicht?

Warum funktioniert cd in meinem Shell-Skript nicht?

GELÖST

Ich versuche, auf meinem Linux Amazon-EC2-Server ein Shell-Skript zu erstellen, das meinen Minecraft-Server startet, aber der Befehl cd sagt, dass er das Verzeichnis oder die Datei nicht finden kann, wenn ich versuche, in das Verzeichnis zu wechseln, in dem sich die ausführbare Datei des Servers befindet. Bitte beachten Sie, dass ich so gut wie keine Erfahrung mit Shell-Skripten jeglicher Art habe. Hat es etwas mit den Berechtigungen in dem Ordner zu tun, in dem sich diese Datei befindet, oder mit der Datei selbst? Die Datei heißt „startServer“.

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

*Ich habe es nicht mit einer Dateierweiterung gespeichert. Sollte ich das tun? Ist das notwendig?

Antwort1

Um ein Skript ausführbar zu machen, müssen Sie die Berechtigungen für das Skript ändern, sodass es ausführbar ist.

Der Befehl zum Ändern der Berechtigungen unter Linux oder UNIX lautetchmod.

chmod +x ./name_of_your_script

Erteilt dem aktuellen Benutzer die Berechtigung, das Skript auszuführen.

Das #! am Anfang Ihres Skripts zeigt der interaktiven Shell an, dass das Skript von /bin/bash interpretiert werden soll, sodass Sie dem Dateinamen eigentlich keine Erweiterung hinzufügen müssen. Es ist jedoch üblich, .sh an Shell-Skripte anzuhängen.

Antwort2

Was genau ist die Fehlermeldung? Ich vermute, es ist:

cd: /Minecraft: No such file or directory

Dies geschieht, wenn HOME nicht definiert ist und ~ zu einer leeren Zeichenfolge erweitert wird.

Antwort3

Um das Skript ausführen zu können, sind Ausführungsberechtigungen erforderlich. Wechseln Sie hierzu mit cd in das Verzeichnis, in dem es gespeichert ist, und verwenden Sie:

chmod u+rwx startServer 

Ich glaube jedoch nicht, dass das Ihr Problem ist. Versuchen Sie, den vollständigen Pfad zur Datei minecraft_server.jar zu verwenden, anstatt eine CD zu verwenden:

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

verwandte Informationen