庆典“&”不打印“[1] +完成”(bash “&” without printing “[1]+

2019-09-17 00:34发布

我把一个脚本在我的.bashrc打印我有新邮件的数量,当我打开终端,我想调用是非阻塞的,因为它接入网络,有时甚至需要几秒钟,这意味着我不能使用终端直到它完成。

但是,如果我把:

    mailcheck & 

在我的.bashrc,它工作正常。 但随后打印一个空行,我有,当我按下Enter键,它打印

    [1]+  Done                    ~/bin/mailcheck

这是非常混乱是有办法解决?

Answer 1:

该消息不是从MAILCHECK到来,从bash的作业控制是告诉你关于你的工作中背景。 为了避免它的方式是告诉bash,那么你不希望它由作业控制管理:

mailcheck &
disown $!


Answer 2:

这似乎工作:

(mailcheck &)


Answer 3:

你可以打电话给你的脚本是这样的:

(exec mailcheck & )


Answer 4:

尝试管道标准错误到/ dev / null的

mailcheck & 2>/dev/null

关于它的几个分钟思考,另一种方式可能是使用写。
管后台任务,以自己的输出,这样它可以在任何时间完成,您可以从斌标准输出以及标准错误的任何额外的输出。

mailcheck | write $(whoami) & > /dev/null


文章来源: bash “&” without printing “[1]+ Done ”