Bạn có thể sử dụng thay thế lệnh bash $(command)
như thế này:
$(command1 ; command2) &
Lưu ý rằng stdin và stdout vẫn được liên kết với tiến trình cha và việc chuyển hướng ít nhất là thiết bị xuất chuẩn có thể khó khăn. Vì vậy, thay vào đó, bạn có thể xâu chuỗi các lệnh trong một dòng duy nhất sau đó chuyển chuỗi sang bash
lệnh để sinh ra một quy trình mới sẽ xử lý việc thực thi.
bash -c "command1 ; command2" &
Điều này đặc biệt hữu ích trong tập lệnh bash khi bạn cần chạy nhiều lệnh trong nền.
Hai tuyên bố này nên tương đương. Một quá trình bash được sinh ra trong cả hai trường hợp để xử lý lệnh (chuỗi lệnh) và&
ở cuối sẽ loại bỏ việc thực thi.
Lần này, bạn có thể thêm vào &>/dev/null
trước khi &
kết thúc lệnh để chuyển hướng ít nhất là thiết bị xuất chuẩn và tránh đầu ra trên thiết bị xuất chuẩn của quy trình cha. Cái gì đó như:
bash -c "command1 ; command2" &>/dev/null &
()
để bao quanh lệnh.