Để chạy một quá trình trong nền trong bash là khá dễ dàng.Chạy lệnh bash ở chế độ nền mà không cần in mã số công việc và quá trình
$ echo "Hello I'm a background task" &
[1] 2076
Hello I'm a background task
[1]+ Done echo "Hello I'm a background task"
Tuy nhiên, đầu ra là tiết. Trên dòng đầu tiên được in id công việc và id quá trình của tác vụ nền, sau đó chúng tôi có đầu ra của lệnh, cuối cùng chúng tôi có id công việc, trạng thái của nó và lệnh đã kích hoạt công việc.
Có cách nào để ngăn chặn đầu ra của chạy tác vụ nền sao cho đầu ra trông chính xác như nó sẽ không có dấu và ở cuối? Tức là:
$ echo "Hello I'm a background task" &
Hello I'm a background task
Lý do tôi hỏi là tôi muốn chạy một tiến trình nền như một phần của một lệnh bằng tab completion để đầu ra của lệnh đó phải được không bị gián đoạn để thực hiện bất kỳ ý nghĩa.
Tôi giả sử bạn nên thêm 2>/dev/null vào bất kỳ thứ gì bạn làm bên trong các tập lệnh hoàn thành bash – sehe