Se você realmente quisesse fazer tudo na linha de comando sem fazer um script, faça o seguinte:
nohup bash -c "while true; do date; sleep 1; done"
Tentei:
while true; do date; sleep 1; done
Tem:
Thu Aug 27 17:33:24 IDT 2009
Thu Aug 27 17:33:25 IDT 2009
Thu Aug 27 17:33:26 IDT 2009
...
Mas:
nohup while true; do date; sleep 1; done
Me pegou:
bash: syntax error near unexpected token 'do'
Alguma ideia do porquê?
nohup recebe um comando, "while" não é um comando, é um shell embutido.
enquanto na verdade é um comando que é construído no bash, não em um executável separado, então o nohup não pode executá-lo. Se você quiser fazer isso, precisará colocar seus comandos em um arquivo e usar nohup para executar esse arquivo.