我在.bashrc中调用一个脚本来打印我打开终端时的新消息数量,我希望呼叫在访问网络时是非阻塞的,有时需要几秒钟,这意味着我不能使用终端直到完成。
但是如果我把:
mailcheck &
在我的bashrc中,它运行正常。但是然后打印一个空行,当我按下Enter键时它会打印
[1]+ Done ~/bin/mailcheck
这有点麻烦吗?
答案 0 :(得分:9)
该消息不是来自mailcheck,而是来自bash的工作控制,告诉你有关你的后台工作。避免它的方法是告诉bash你不希望它由作业控制管理:
mailcheck &
disown $!
答案 1 :(得分:4)
这似乎有效:
(mailcheck &)
答案 2 :(得分:3)
您可以这样调用您的脚本:
(exec mailcheck & )
答案 3 :(得分:2)
尝试将stderr传递给/ dev / null
mailcheck & 2>/dev/null
考虑几分钟,另一种方法可能是使用写作
将后台任务的输出传递给您自己,这样它就可以随时完成,您可以从stdout和stderr中添加任何其他输出。
mailcheck | write $(whoami) & > /dev/null