Giả sử rằng tôi có ba (hoặc nhiều hơn) các kịch bản bash: script1.sh
, script2.sh
, và script3.sh
. Tôi muốn gọi cả ba kịch bản này và chạy chúng song song . Một cách để làm điều này là chỉ thực hiện các lệnh sau:
nohup bash script1.sh &
nohup bash script2.sh &
nohup bash script3.sh &
(Nói chung, các tập lệnh có thể mất vài giờ hoặc vài ngày để hoàn thành, vì vậy tôi muốn sử dụng nohup
để chúng tiếp tục chạy ngay cả khi bảng điều khiển của tôi đóng.)
Nhưng, liệu có cách nào để thực hiện những ba lệnh trong song song với một đơn cuộc gọi?
Tôi đã suy nghĩ một cái gì đó như
nohup bash script{1..3}.sh &
nhưng điều này dường như thực hiện script1.sh
, script2.sh
và script3.sh
theo thứ tự, không song song.
nohup bash script{1..100}.sh &
hoặc for i in {1..100}; do nohup bash script{1..100} &; done
), thay vì nhập nohup bash script*.sh &
100 lần khác nhau.
screen
(hoặc tmux
), để giải quyết vấn đề bàn điều khiển nhưng vẫn giữ quyền truy cập vào đầu ra (và đầu vào).
nohup ... & nohup ... & nohup ... &
. Thay vào đó, nếu bạn muốn chạy tất cả các tập lệnh mà không cần nhập từng tên tập lệnh riêng lẻ, một vòng lặp đơn giản sẽ thực hiện.