Bash công việc song song bằng cách sử dụng vòng lặp

Bash Cong Viec Song Song Bang Cach Su Dung Vong Lap



Có nhiều cách tồn tại trong Linux để chạy song song nhiều lệnh hoặc tập lệnh Bash. Một trong những cách là sử dụng vòng lặp “for” trong tập lệnh Bash để chạy một công việc song song. Vòng lặp này rất hữu ích để chạy các công việc song song bằng cách sử dụng lệnh “seq”. Các cách khác nhau để thực hiện các công việc song song bằng cách sử dụng vòng lặp “for” được trình bày trong hướng dẫn này.

Các ví dụ khác nhau về công việc song song

Các cách khác nhau để chạy các công việc song song bằng cách sử dụng vòng lặp “for” được trình bày trong phần hướng dẫn này.

Ví dụ 1: Chạy các công việc song song bằng vòng lặp “For”

Sử dụng vòng lặp “for” là cách đơn giản hơn để thực hiện các công việc song song trong tập lệnh Bash. Tạo một tệp Bash với tập lệnh sau chạy vòng lặp “for” 10000 lần và in một số sau khi lặp lại 1000 lần. Nhiệm vụ này được thực hiện song song bằng cách sử dụng vòng lặp “for”.







#!/bin/bash

# Lặp lại vòng lặp cho đến khi đạt tới 10000

val TRONG ` tiếp theo 0 1000 10000 ` ;

LÀM

#In mọi số thứ 1000

tiếng vang $val

xong

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Có 10 số từ 0 đến 10000 được in ở đầu ra:



  p3



Ví dụ 2: Chạy các công việc song song bằng cách sử dụng vòng lặp “For” lồng nhau

Tạo một tệp Bash với tập lệnh sau chạy vòng lặp “for” lồng nhau để tạo số sê-ri bằng cách sử dụng các ký tự chữ cái từ “A” đến “C” và các số từ 1 đến 3. Trong lần lặp đầu tiên của vòng lặp bên ngoài và sau đó hoàn thành việc lặp lại vòng lặp bên trong, “A1. CodeIgniter”, “A2. Laravel” và “A3. CakePHP” được in. Trong lần lặp thứ hai của vòng lặp bên ngoài và sau khi hoàn thành việc lặp lại vòng lặp bên trong, “B1. Oracle”, “B2. MySQL” và “B3. SQL” được in. Trong lần lặp thứ ba của vòng lặp bên ngoài và sau khi hoàn thành việc lặp lại vòng lặp bên trong, “C1. CSS”, “C2. JQuery” và “C3. JavaScript” được in.





#vòng lặp bên ngoài

chữ cái TRONG { AC }

LÀM

#Vòng trong

con số TRONG { 1 .. 3 }

LÀM

#In đầu ra dựa trên điều kiện

nếu như [ $alpha == 'MỘT' ] ; sau đó

lập danh sách = ( 'Bộ đánh lửa mã' 'Ấu trùng' 'CakePHP' )

yêu tinh [ $alpha == 'B' ] ; sau đó

lập danh sách = ( 'Nhà tiên tri' 'MySQL' 'SQL' )

yêu tinh [ $alpha == 'C' ] ; sau đó

lập danh sách = ( 'CSS' 'Truy vấn' 'JavaScript' )



tiếng vang ' $alpha số $ . ${arrayList[$number-1]} '

xong

xong

Đầu ra sau xuất hiện sau khi thực thi tập lệnh:



Ví dụ 3: Chạy các công việc song song bằng cách sử dụng lệnh “For” Loop và “Wait”

Lệnh “wait” là một lệnh rất hữu ích của Bash được sử dụng để đợi một công việc hoàn thành tác vụ khi nhiều công việc đang chạy. Nếu có ít công việc đang chạy hơn, lệnh “chờ” sẽ bắt đầu một công việc mới không đồng bộ. Tạo một tệp Bash với tập lệnh sau để chạy một công việc nền bên trong vòng lặp “for” lồng nhau. Lệnh “wait” được sử dụng để đợi hoàn thành tất cả các tiến trình con. Các lệnh “ngày” và “ngủ” được thực thi dưới dạng quy trình nền.

#vòng lặp bên ngoài

Tôi TRONG { 1 .. 2 }

LÀM

#Vòng trong

j TRONG { 1 .. 3 }

LÀM

nếu như Bài kiểm tra ' $(công việc | wc -l) ' -ge 2 ; sau đó

Chờ đợi -N



#quy trình nền

{

ngày

ngủ 1

} &

xong

xong

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Ngày và giờ hiện tại được in 6 lần từ quy trình nền để lặp lại các vòng lặp “for” lồng nhau trong 2×3=6 lần:

Ví dụ 4: Sự khác biệt giữa chạy tuần tự và chạy song song

Tạo tệp Bash với tập lệnh sau cho thấy sự khác biệt giữa chạy tuần tự và chạy song song. Hàm prn_char() được xác định trong tập lệnh để in năm ký tự với thời lượng 0,5 giây. Tiếp theo, vòng lặp “for” đầu tiên được sử dụng để chạy hàm prn_char() theo tuần tự. Vòng lặp “for” thứ hai được sử dụng để chạy song song hàm prn_char().

#Xác định chức năng in 5 ký tự với thời lượng 0,5 giây

prn_char ( ) {

c TRONG Xin chào; LÀM

ngủ 0,5 ;

tiếng vang -N $c ;

xong

tiếng vang

}

# Chạy hàm tuần tự bằng vòng lặp for

ngoài TRONG { 1 .. 3 } ; LÀM

prn_char ' $ ra '

xong

# Chạy song song hàm sử dụng vòng lặp for

ngoài TRONG { 1 .. 3 } ; LÀM

prn_char ' $ ra ' &

xong


Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Sự khác biệt giữa chạy tuần tự và chạy song song được hiển thị trong đầu ra. Ở đây, tất cả các ký tự của vòng lặp “for” của hàm prn_char() được in cùng một lúc trong quá trình chạy tuần tự và mỗi ký tự được in ba lần trong quá trình chạy song song:

  p4

Phần kết luận

Chạy các công việc song song sử dụng vòng lặp “for” là cần thiết cho nhiều mục đích lập trình. Các phương pháp chạy các công việc song song bằng cách sử dụng vòng lặp “for” được trình bày trong hướng dẫn này.