Bash Loop qua một danh sách các chuỗi

Bash Loop Through List Strings



Danh sách các chuỗi hoặc mảng hoặc chuỗi các phần tử có thể được lặp lại bằng cách sử dụng vòng lặp trong bash. Cách bạn có thể lặp lại danh sách các chuỗi trong Bash bằng vòng lặp for được hiển thị trong hướng dẫn này bằng cách sử dụng các ví dụ tập lệnh bash khác nhau. Nếu bạn là người mới lập trình cơ bản thì bạn có thể đọc hướng dẫn về BASH cho ví dụ về vòng lặp trước khi bắt đầu hướng dẫn này.

Tạo một tệp bash có tên là ‘ for_list1.sh 'Và thêm tập lệnh sau. Giá trị chuỗi có khoảng trắng được sử dụng trong vòng lặp for. Theo mặc định, giá trị chuỗi được phân tách bằng dấu cách. Vòng lặp For sẽ chia chuỗi thành các từ và in ra từng từ bằng cách thêm một dòng mới.







#! / bin / bash
# Đọc một chuỗi có khoảng trắng bằng vòng lặp for
giá trịtrongTôi thích lập trình
làm
quăng đi giá trị $
xong

Đầu ra:



$bấu víufor_list1.sh



Ví dụ-2: Lặp lại một biến chuỗi bằng vòng lặp for

Tạo một tệp bash có tên là ‘ for_list2.sh 'Và thêm tập lệnh sau. Gán một văn bản vào biến, StringVal và đọc giá trị của biến này bằng vòng lặp for. Ví dụ này cũng sẽ hoạt động giống như ví dụ trước và chia giá trị của biến thành các từ dựa trên khoảng trắng.





#! / bin / bash
# Xác định một biến chuỗi với một giá trị
StringVal='Chào mừng đến với linuxhint'

# Lặp lại biến chuỗi bằng vòng lặp for
giờtrong $ StringVal;làm
quăng đi $ giờ
xong

Đầu ra:

$bấu víufor_list2.sh



Ví dụ-3: Lặp lại một mảng các giá trị chuỗi

Tạo một tệp bash có tên là ‘ for_list3.sh 'Và thêm tập lệnh sau. Một mảng các giá trị chuỗi được khai báo với kiểu trong tập lệnh này. Hai giá trị trong mảng chứa khoảng trắng là Linux MintRed Hat Linux . Tập lệnh này sẽ tạo ra đầu ra bằng cách tách các giá trị này thành nhiều từ và in ra dưới dạng giá trị riêng biệt. Nhưng đây không phải là đầu ra thích hợp. Giải pháp của loại vấn đề này được trình bày trong ví dụ tiếp theo.

#! / bin / bash

# Khai báo một mảng chuỗi với kiểu
tuyên bố -đến StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Lặp lại mảng chuỗi bằng vòng lặp for
giờtrong $ {StringArray [@]};làm
quăng đi $ giờ
xong

Đầu ra:

$bấu víufor_list3.sh

Ví dụ-4: In giá trị chuỗi nhiều từ dưới dạng một giá trị duy nhất

Tạo một tệp bash có tên là ‘ for_list4.sh 'Và thêm tập lệnh sau. Trong ví dụ này, mọi phần tử của biến mảng, StringArray chứa các giá trị của hai từ. Để in từng giá trị mà không cần chia nhỏ và giải quyết vấn đề của ví dụ trước, bạn chỉ cần đặt biến mảng bằng dấu ngoặc kép trong vòng lặp for.

#! / bin / bash

# Khai báo một mảng chuỗi với kiểu
tuyên bố -đến StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Đọc các giá trị mảng với khoảng trắng
giờtrong '$ {StringArray [@]}';làm
quăng đi $ giờ
xong

Đầu ra:

$bấu víufor_list4.sh

Ví dụ-5: Lặp lại các giá trị chuỗi của một mảng bằng cách sử dụng ‘*’

Tạo một tệp bash có tên là ‘ for_list5.sh 'Với mã sau. Ở đây, ký hiệu ‘*’ được sử dụng để đọc tất cả các giá trị chuỗi của mảng. Vòng lặp for đầu tiên được sử dụng để hiển thị các giá trị mảng trong nhiều dòng và vòng lặp for thứ hai được sử dụng để hiển thị các giá trị mảng trong một dòng duy nhất.

#! / bin / bash

#Declare một mảng chuỗi
LanguageArray=('PHP' 'Java' 'NS #' 'C ++' 'VB.Net' 'Python' 'Perl')

# In giá trị mảng theo dòng
quăng đi 'In mọi phần tử trong dòng mới'
val1trong $ {LanguageArray [*]};làm
quăng đi $ val1
xong

quăng đi ''

# In các giá trị mảng trong một dòng
quăng đi 'In tất cả các phần tử trong một dòng duy nhất'
val2trong '$ {LanguageArray [*]}';làm
quăng đi $ val2
xong
quăng đi ''

Đầu ra:

$bấu víufor_list5.sh

Ví dụ-6: Lặp lại các giá trị chuỗi được phân tách bằng dấu phẩy

Tạo một tệp bash mới có tên là ‘ for_list6.sh ’ với đoạn mã sau. Ở đây, dấu phẩy (,) được sử dụng để phân chia các giá trị chuỗi. IFS biến được sử dụng để đặt dấu phân cách trường.

#! / bin / bash
Danh sách dữ liệu='HTML5, CCS3, BootStrap, JQuery'
Field_Separator=$ IFS

# đặt dấu phẩy làm dấu phân tách trường nội bộ cho danh sách chuỗi
IFS=,
giờtrong $ DataList;
làm
quăng đi $ giờ
xong

IFS=$ Field_Separator

Đầu ra:

$bấu víufor_list6.sh

Ví dụ-7: Đọc nhiều mảng chuỗi cùng nhau

Tạo một tệp bash có tên là ‘ for_list7.sh 'Và thêm tập lệnh sau. Trong ví dụ này, hai mảng chuỗi được xác định và kết hợp thành một mảng khác. Vòng lặp for bên ngoài được sử dụng để đọc mảng kết hợp và vòng lặp for bên trong được sử dụng để đọc từng mảng bên trong.

#! / bin / sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
phối hợp=(str_array1 str_array2)
quản lýtrong $ {kết hợp [@]}
làm
đánh giá 'for val in' $ {'$ arrItem'[@]}'; làm echo '$ val'; xong '
xong

Đầu ra:

$bấu víufor_list7.sh

Ví dụ-8: Sử dụng mẫu để đọc danh sách các chuỗi

Tạo một tệp bash mới có tên for_list8.sh với đoạn mã sau. Ở đây, ‘/, /’ mẫu được sử dụng để phân chia các giá trị chuỗi dựa trên dấu phẩy.

#! / bin / sh

# Xác định danh sách biến chuỗi
stringList= WordPress, Joomla, Magento

# Sử dụng dấu phẩy làm dấu phân cách và áp dụng làm mẫu
giờtrong $ {stringList //, /}
làm
quăng đi $ giờ
xong

Đầu ra:

$bấu víufor_list8.sh

Hy vọng, các ví dụ của hướng dẫn này sẽ giúp bạn hiểu cách sử dụng vòng lặp for để lặp lại danh sách các chuỗi, đối với video về chủ đề này, hãy xem bên dưới: