Mảng là tập hợp các phần tử. Trong Bash, một mảng có thể chứa các phần tử thuộc nhiều kiểu dữ liệu khác nhau, ví dụ: chuỗi (string) và số (number).
Cách Tạo Mảng trong Bash
Có hai cách để tạo mảng Bash:
Sử dụng từ khóa declare
declare -a my_bash_array
Lệnh này sẽ tạo một mảng chỉ mục (indexed array) tên là "my_bash_array".
Khởi tạo Mảng
Chúng ta cũng có thể tạo và khởi tạo mảng ngay lập tức bằng toán tử gán = và các phần tử bên trong cặp ngoặc đơn ():
my_bash_array=("apple" "orange" "banana")
Hoặc có thể chỉ định chỉ mục (index) một cách tường minh:
my_bash_array[0]="apple"
my_bash_array[1]="orange"
my_bash_array[2]="banana"
Lưu ý: Không được có khoảng trắng ở cả hai bên của toán tử =.
Độ Dài Mảng Bash
Để lấy độ dài (kích thước) của một mảng, ta sử dụng cú pháp ${#array_name[@]}.
Ví dụ:
my_bash_array=(foo bar baz)
echo "the array contains ${#my_bash_array[@]} elements"
# Kết quả: the array contains 3 elements
Vòng Lặp Mảng Bash
Để duyệt qua tất cả các phần tử trong mảng Bash, ta dùng vòng lặp for:
#!/bin/bash
my_array=(foo bar baz)
# Vòng lặp duyệt qua từng phần tử
for i in "${my_array[@]}"
do
echo $i
done
Kết quả:
foo
bar
baz
In Tất Cả Phần Tử
Để in toàn bộ phần tử của mảng mà không cần vòng lặp, ta dùng cú pháp sau:
echo ${my_array[@]}
Thêm Phần Tử Vào Mảng
Để thêm phần tử vào mảng, ta dùng toán tử +=. Toán tử này sẽ nối phần tử vào cuối mảng.
Ví dụ:
my_array=(foo bar)
my_array+=(baz)
echo "${my_array[@]}"
# foo bar baz
Hoặc dùng chỉ mục để thêm phần tử:
my_array=(foo bar)
my_array[2]=baz
echo "${my_array[@]}"
# foo bar baz
Xóa Phần Tử Khỏi Mảng
Để xóa một phần tử khỏi mảng Bash, ta dùng lệnh unset.
Ví dụ:
my_array=(foo bar baz)
unset my_array[1]
echo ${my_array[@]}
# foo baz
Kết Luận
Trong hướng dẫn này, chúng ta đã tìm hiểu về mảng Bash: cách tạo và khởi tạo mảng, cách lấy độ dài, duyệt qua các phần tử, in phần tử và sửa đổi nội dung mảng.