Dynamisches Erstellen eines Befehls in Bash
Ich konstruiere einen Befehl dynamisch in Bash. Das funktioniert gut:
COMMAND="java myclass"
${COMMAND}
Jetzt möchte ich dynamisch einen Befehl erstellen, der die Ausgabe umleitet:
LOG=">> myfile.log 2>&1"
COMMAND="java myclass $LOG"
${COMMAND}
Der Befehl ruft weiterhin den Java-Prozess auf, die Ausgabe wird jedoch nicht an myfile.log umgeleitet
Zusätzlich, wenn ich tue:
BACKGROUND="&"
COMMAND="java myclass $BACKGROUND"
${COMMAND}
Der Befehl wird nicht im Hintergrund ausgeführt.
Gibt es Hinweise, wie die Protokollumleitung funktioniert und welche Hintergrundbits funktionieren? (bash -x zeigt die Befehle, die wie erwartet erstellt werden)
(In Wirklichkeit werden im Gegensatz zu diesem Beispiel die Werte von LOG und BACKGROUND dynamisch festgelegt.)