繁体   English   中英

bash“&”没有打印“[1] +完成”

[英]bash “&” without printing “[1]+ Done ”

我在.bashrc中调用脚本来打印我打开终端时的新消息数量,我希望呼叫在访问网络时是非阻塞的,有时需要几秒钟,这意味着我无法使用终端直到它完成。

但是,如果我把:

    mailcheck & 

在我的bashrc中,它工作正常。 但是然后打印一个空行,当我按下回车键进行打印时

    [1]+  Done                    ~/bin/mailcheck

这是非常混乱有没有办法解决这个问题?

这条消息不是来自mailcheck,而是来自bash的工作控制,告诉你关于你的后台工作。 避免它的方法是告诉bash你不希望它由作业控制管理:

mailcheck &
disown $!

这似乎有效:

(mailcheck &)

你可以这样调用你的脚本:

(exec mailcheck & )

尝试将stderr管道传输到/ dev / null

mailcheck & 2>/dev/null

考虑几分钟,另一种方式可能是使用写。
将后台任务的输出传递给您自己,这样它就可以随时完成,您可以从stdout和stderr中获取任何其他输出。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM