![给出带有参数的命令时出现 nohup 问题](https://linux22.com/image/1213704/%E7%BB%99%E5%87%BA%E5%B8%A6%E6%9C%89%E5%8F%82%E6%95%B0%E7%9A%84%E5%91%BD%E4%BB%A4%E6%97%B6%E5%87%BA%E7%8E%B0%20nohup%20%E9%97%AE%E9%A2%98.png)
尝试过:
while true; do date; sleep 1; done
得到:
Thu Aug 27 17:33:24 IDT 2009
Thu Aug 27 17:33:25 IDT 2009
Thu Aug 27 17:33:26 IDT 2009
...
但:
nohup while true; do date; sleep 1; done
得到我了:
bash: syntax error near unexpected token `do'
知道原因吗?
答案1
如果您确实想在命令行上完成所有操作而不编写脚本,请执行以下操作:
nohup bash -c "while true; do date; sleep 1; done"
答案2
nohup 接受一个命令,“while”不是一个命令,它是一个 shell 内置命令。
答案3
while 实际上是 bash 内置的命令,而不是单独的可执行文件,因此 nohup 无法运行它。如果要执行此操作,您需要将命令放入文件中,然后使用 nohup 运行该文件。