Beim Ausführen einer Bash-Datei wird Folgendes angegeben: Datum: Befehl nicht gefunden

7

Ich habe eine Version von Ubuntu Server installiert und obwohl ich mit Ubuntu noch ziemlich frisch bin, versuche ich, eine Bash-Datei zu erstellen, um ein Programm im Hintergrund auszuführen. Noch wichtiger ist, dass ich versuche, einen Dateinamen korrekt anzuzeigen und zu erstellen, bevor ich mit dem Ausführen des Programms beginne (ich mag meine Debug-Inhalte).

Hier ist jedoch mein Bash-Skript:

 #!/bin/bash
 PATH="/var/log/servers/Game/"
 FILENAME="startup"
 EXT=".log"
 DATE=$(date +%d-%m-%Y)
 NEWFILE=${PATH}${FILENAME}_${DATE}${EXT}

Ich habe überprüft, ob die Datei im PATH-Verzeichnis vorhanden ist. Das Problem liegt jedoch beim Befehl date. Wenn ich das Skript ausführe, bash -x game.shwird dies angezeigt.

 + PATH=/var/log/servers/Game/
 + FILENAME=startup
 + EXT=.log
 ++ date +%d-%m-%Y
 game.sh: line 5: date: command not found
 + DATE=
 + NEWFILE=/var/log/servers/Game/startup_.log
 + echo /var/log/servers/Game/startup_.log

Ich verstehe nicht, warum der Befehl nicht funktioniert, wenn ich zur Hauptkonsole gehen dateund eine gültige Antwort erhalten kann.

Jede Hilfe wird sehr geschätzt!

Twister1002
quelle

Antworten:

9
PATH="/var/log/servers/Game/"

Hier wird die PATHzu gerade diesem Verzeichnis, und ich bezweifle , dass Verzeichnis enthält date.

Seien Sie vorsichtig, wenn Sie Variablennamen in Großbuchstaben verwenden. Sie können leicht über eine Standardumgebungsvariable stampfen.

Halten Sie sich an Kleinbuchstaben und beschreiben Sie diese genauer. Erwägen Sie beispielsweise die Verwendung von:

log_path="/var/log/servers/Game/"
NEWFILE="${log_path}${FILENAME}_${DATE}${EXT}"
muru
quelle
Wow, jetzt fühle ich mich nicht wie ein Dummy. X_X. Vielen Dank für diese einfache Lösung.
Twister1002