我把一个脚本在我的.bashrc打印我有新邮件的数量,当我打开终端,我想调用是非阻塞的,因为它接入网络,有时甚至需要几秒钟,这意味着我不能使用终端直到它完成。
但是,如果我把:
mailcheck &
在我的.bashrc,它工作正常。 但随后打印一个空行,我有,当我按下Enter键,它打印
[1]+ Done ~/bin/mailcheck
这是非常混乱是有办法解决?
我把一个脚本在我的.bashrc打印我有新邮件的数量,当我打开终端,我想调用是非阻塞的,因为它接入网络,有时甚至需要几秒钟,这意味着我不能使用终端直到它完成。
但是,如果我把:
mailcheck &
在我的.bashrc,它工作正常。 但随后打印一个空行,我有,当我按下Enter键,它打印
[1]+ Done ~/bin/mailcheck
这是非常混乱是有办法解决?
该消息不是从MAILCHECK到来,从bash的作业控制是告诉你关于你的工作中背景。 为了避免它的方式是告诉bash,那么你不希望它由作业控制管理:
mailcheck &
disown $!
这似乎工作:
(mailcheck &)
你可以打电话给你的脚本是这样的:
(exec mailcheck & )
尝试管道标准错误到/ dev / null的
mailcheck & 2>/dev/null
关于它的几个分钟思考,另一种方式可能是使用写。
管后台任务,以自己的输出,这样它可以在任何时间完成,您可以从斌标准输出以及标准错误的任何额外的输出。
mailcheck | write $(whoami) & > /dev/null