2012-05-03 9 views
8

Wywołuję skrypt w moim .bashrc, aby wydrukować liczbę nowych wiadomości, które mam, gdy otwieram terminal, Chcę, aby wywołanie nie blokowało dostępu do niego sieci i czasami zajmuje kilka sekund, co oznacza, że ​​nie mogę używać terminala, dopóki się nie zakończy.bash "&" bez drukowania "[1] + gotowe"

Jednak jeśli kładę:

mailcheck & 

w moim bashrc, to działa dobrze. ale potem drukuje pusty wiersz i mam kiedy naciśnij enter i drukuje

[1]+ Done     ~/bin/mailcheck 

To jest bardzo brudny czy istnieje sposób wokół to?

+0

Co za wnikliwe pytanie !! +1 –

Odpowiedz

9

Ta wiadomość nie pochodzi z MAILCHECK, to od sterowania praca mówienia atakujących za o twojej pracy w tle. Aby tego uniknąć, powiedz bashowi, że nie chcesz, aby był zarządzany przez kontrolę pracy:

mailcheck & 
disown $! 
+0

Dlaczego nie po prostu 'mailcheck & disown'? –

2

try rurociągi stderr do/dev/null

mailcheck & 2>/dev/null 

Myśląc o nim przez kilka minut, innym sposobem może być użycie zapisu.
Przetwarzaj dane wyjściowe zadania w tle dla siebie, tak aby można je było wykonać w dowolnym momencie i można odfiltrować dodatkowe dane wyjściowe ze stdout i stderr.

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

Nie przepraszam, powinienem powiedzieć, że próbowałem, to nie wydaje się być stderr –

+0

nie powinno być stderr, ponieważ nie jest to błąd. ponieważ działa w tle, po prostu informuje, że proces zakończył się pomyślnie. może stdout? –

+0

To też nie jest dobre, nie rozumiem tego, jeśli to nie jest stdout czy stderr, co to jest? –

3

można wywołać skrypt tak:

(exec mailcheck &) 
+0

nadal nie ma dobrego, dostaję: [1] + Gotowe exec ~/bin/mailcheck –

+0

To działa dobrze w moich testach. Kiedy dołączę wywołanie skryptu do mojego .bashrc, nie otrzymam żadnego komunikatu "Gotowe", kiedy następnym razem zaloguję się. – anubhava

+0

Tak, przepraszam, twoja poprawna Tęskniłem za nawiasami –

4

To wydaje się działać:

(mailcheck &) 
+0

Wygląda na to, że działa bez przekierowania. –

+0

@Dennis: dobrze zauważony - Wybiorę przekierowanie. –

Powiązane problemy