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.