nohup (...) 中的语法错误

nohup (...) 中的语法错误

我试图nohup通过在后台执行命令并注销并再次登录并期望命令的输出位于文件中来测试 bash shell 中的命令nohup.out。这是我尝试执行的命令:

$ nohup (sleep 120; echo "job done") &

但我不断收到错误:

bash: syntax error near unexpected token `sleep`

答案1

命令nohup不是一个关键词;它不能被赋予一个子 shell 作为要运行的命令,而是需要一个实际的可运行命令:

nohup bash -c 'sleep 120; echo "job done"' &

Bash 给你一个语法错误,因为它认为你正在尝试声明一个名为“nohup”的函数,这是命令行上第二个单词中可以出现裸括号的唯一情况:

nohup () { ... ; }

错误消息(含糊地)告诉您,它期望在那里看到正确的括号,而不是“睡眠”一词。

相关内容