簡體   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