kein Problem mit „nohup“, wenn ein Befehl mit Argumenten gegeben wird

kein Problem mit „nohup“, wenn ein Befehl mit Argumenten gegeben wird

Versucht:

while true; do date; sleep 1; done

Bekommen:

Thu Aug 27 17:33:24 IDT 2009
Thu Aug 27 17:33:25 IDT 2009
Thu Aug 27 17:33:26 IDT 2009
...

Aber:

nohup while true; do date; sleep 1; done

Hast mich:

bash: syntax error near unexpected token `do'

Irgendwelche Ideen, warum?

Antwort1

Wenn Sie WIRKLICH alles über die Befehlszeile erledigen möchten, ohne ein Skript zu erstellen, gehen Sie wie folgt vor:

nohup bash -c "while true; do date; sleep 1; done"

Antwort2

nohup nimmt einen Befehl entgegen, „while“ ist kein Befehl, sondern ein integriertes Shell-Element.

Antwort3

while ist eigentlich ein in Bash integrierter Befehl und keine separate ausführbare Datei. Daher kann nohup ihn nicht ausführen. Wenn Sie dies tun möchten, müssen Sie Ihre Befehle in eine Datei schreiben und dann nohup verwenden, um diese Datei auszuführen.

verwandte Informationen