我有一个像这样的shell命令
sudo nohup coffee -c -w *.coffee &
disown $!
wait
但是当我运行shell scrit时它会显示nohup: appending output to 'nohup.out'
并让我按下回车键。
如何绕过Enter?
答案 0 :(得分:5)
据我了解,你不必这样做。消息将输出到控制台,但不会添加到输入缓冲区。因此,您可以继续输入命令,就像没有来自nohup
的消息一样,该消息不会干扰您的输入。
嗯,不必从确切的提示位置打字可能在美学上不那么讨人喜欢。
答案 1 :(得分:3)
8岁的帖子,但我发现这些答案都没有真正解决问题中的问题。
消息nohup: ignoring input and appending output to 'nohup.out'
通过stderr(AFAIK)传送,因此为了使该消息静音,您所要做的就是将stderr重定向到/dev/null
,如下所示:
nohup mycommand 2> /dev/null
但是,如果您还想在后台使用&
运行此过程,您会发现(至少对于bash),将会有一个作业号和PID的单行输出(例如{ {1}})。要避免这种情况,请在子shell中运行整个命令,如下所示:
[1] 27184
但如果你在脚本中使用它,那么前一种解决方案就足够了。
答案 2 :(得分:1)
您也可以手动重定向日志:
sudo nohup coffee -c -w *.coffee > /tmp/coffee.log &
这样消息根本不会显示出来。