2012-05-03 32 views
8

Tôi gọi một tập lệnh trong .bashrc để in số thư mới tôi có khi mở terminal, tôi muốn cuộc gọi không bị chặn khi truy cập mạng và đôi khi mất một vài giây có nghĩa là tôi không thể sử dụng thiết bị đầu cuối cho đến khi nó hoàn thành.bash "&" không in "[1] + Đã hoàn thành"

Tuy nhiên nếu tôi đặt:

mailcheck & 

trong bashrc của tôi, nó hoạt động tốt. nhưng sau đó in một dòng trống và tôi có khi tôi nhấn enter và nó in

[1]+ Done     ~/bin/mailcheck 

Điều này là rất lộn xộn là có một cách xung quanh này?

+0

Thật là một câu hỏi sâu sắc !! +1 –

Trả lời

9

Thông điệp đó không đến từ MAILCHECK, đó là từ kể kiểm soát công việc của bash về công việc của bạn. Cách để tránh nó là nói với bash bạn không muốn nó được quản lý bởi công việc kiểm soát:

mailcheck & 
disown $! 
+0

Tại sao không chỉ là 'thư checkcheck & disown'? –

2

thử đường ống stderr đến/dev/null

mailcheck & 2>/dev/null 

Suy nghĩ về nó cho một vài phút, một cách khác có thể được sử dụng ghi.
Đường ống đầu ra của tác vụ nền cho chính bạn, theo cách đó nó có thể hoàn thành bất cứ lúc nào và bạn có thể bin bất kỳ đầu ra bổ sung nào từ stdout cũng như stderr.

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

Không xin lỗi nên nói rằng tôi đã thử điều đó, nó không có vẻ là stderr –

+0

không nên stderr vì nó không phải là một lỗi. kể từ khi nó chạy trong nền nó chỉ cho bạn biết rằng quá trình đã hoàn tất thành công. có thể stdout? –

+0

Điều đó cũng không tốt, tôi không hiểu điều này, nếu nó không phải là stdout hoặc stderr nó là gì? –

3

Bạn có thể gọi kịch bản của bạn như thế này:

(exec mailcheck &) 
+0

vẫn không tốt tôi nhận được: [1] + Hoàn thành exec ~/bin/mailcheck –

+0

Nó hoạt động tốt trong thử nghiệm của tôi. Khi tôi bao gồm một cuộc gọi script trong .bashrc của tôi, tôi không nhận được bất kỳ thông báo 'Done' nào khi tôi đăng nhập vào lần sau. – anubhava

+0

Vâng xin lỗi, chính xác của bạn Tôi đã bỏ lỡ dấu ngoặc đơn –

4

Điều này dường như làm việc:

(mailcheck &) 
+0

Có vẻ như nó hoạt động mà không cần chuyển hướng. –

+0

@ Dennis: cũng phát hiện ra - Tôi sẽ đưa ra các chuyển hướng. –

Các vấn đề liên quan