如何处理后台linux任务的输出

时间:2013-01-31 16:10:09

标签: linux bash command-line background-process

我有一个不断回应信息的任务。

例如,如果您执行git clone并且想要将该任务发送到后台(使用&符号)

git clone https://github.com/mrdoob/three.js.git &

然后git clone操作不断刷新屏幕,使用git clone进程的新百分比,即:

Receiving objects:  47% (22332/47018), 92.53 MiB | 480 KiB/s   1410/47018), 7.18 MiB | 185 KiB/s
Receiving objects:  53% (24937/47018), 99.40 MiB | 425 KiB/s   1410/47018), 7.18 MiB | 185 KiB/s 

所以我不能继续在前台做其他操作,因为这些更新阻止我看到我想写的东西。

你能告诉我们如何有效地将这样一个冗长的任务发送到后台吗?

非常感谢!

4 个答案:

答案 0 :(得分:6)

您可以让进程将其输出写入文件(如果您需要稍后查看),如下所示:

git clone https://github.com/mrdoob/three.js.git >output.txt &

或完全丢弃输出:

git clone https://github.com/mrdoob/three.js.git >/dev/null &

编辑:

通过将&替换为2>&1 &

,您还可以在上述任一选项中包含发送到stderror的任何错误消息

答案 1 :(得分:3)

其他答案都很好,但您也可以使用:

git clone -q ...

See here for details

答案 2 :(得分:1)

重定向其标准输出:

git clone https://github.com/mrdoob/three.js.git > /dev/null &

或使用命令的相应详细选项(在本例中为git)

答案 3 :(得分:-1)

如果你特意想把它放在后台你可以在命令的末尾附加一个与号(&),或者在它运行时使用ctrl+z然后命令{{1在后台运行它。 要将其恢复,请使用'bg'列出您的工作,然后jobs将其恢复。 希望这有助于并在这种独特的情况下工作