Để chạy tất cả các tập lệnh cùng một lúc (song song) sử dụng:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Để chạy cái này sau cái khác (tuần tự), hãy sử dụng:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Tăng cường cho ý kiến
Nếu bạn có 200 tập lệnh bạn muốn chạy cùng một lúc (có thể làm hỏng máy BTW), hãy sử dụng tập lệnh này:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Đặt các thuộc tính tập lệnh thành thực thi với lệnh:
chmod a+x /path/to/script.sh
Lần đầu tiên bạn chạy tập lệnh, nó sẽ chỉ lặp lại tên của 200 tập lệnh mà nó sẽ thực thi. Khi bạn hài lòng, đúng tên đang được chọn, chỉnh sửa tập lệnh và thay đổi dòng này:
echo bash "$Script" &
đến:
bash "$Script" &
Có ba cách bạn có thể gọi một tập lệnh bash từ một cách khác như được trả lời ở đây:
Làm cho tập lệnh khác có thể thực thi được, thêm #!/bin/bash
dòng ở trên cùng và đường dẫn của tệp tới $PATH
biến môi trường. Sau đó, bạn có thể gọi nó như một lệnh bình thường;
Hoặc gọi nó bằng lệnh nguồn (bí danh là.) Như thế này : source /path/to/script
;
Hoặc sử dụng lệnh bash để thực thi nó : /bin/bash /path/to/script
;
Trong trường hợp của OP, một hoặc nhiều hơn 200 tập lệnh không chứa #!/bin/bash
dòng đầu tiên của shebang trong tệp. Như vậy tùy chọn 3. đã được sử dụng.
200 tập lệnh đang chạy cùng một lúc
Một bình luận đã được đưa ra về việc họ có "chạy cùng một lúc" hay không. Trên hệ thống 8 CPU thông thường, 25 tập lệnh sẽ chia sẻ cùng lúc một CPU nhưng chỉ có một tập lệnh sẽ thực thi tại một thời điểm cho đến khi hết thời gian (tính bằng mili giây). Sau đó, công việc tiếp theo sẽ nhận được phần chia sẻ công bằng của nó là mili giây, rồi công việc tiếp theo, v.v., v.v.
Nói một cách dễ hiểu, chúng ta có thể nói 200 công việc đang chạy "đồng thời" nhưng không "đồng thời" trên 8 CPU tương đương với 25 công việc trên mỗi CPU:

Hình ảnh trên và ý kiến dưới đây từ bộ lập lịch kernel Linux
