Unix/Linux Shell Script - Using Arrays

Trong bài này chúng ta sẽ tìm hiểu về mảng và xử lý mảng trong shell script, đây là loại dữ liệu rất quan trọng trong lập trình bởi sự tiện dụng của nó trong việc lưu trữ dữ liệu. Về bản chất thì nó cũng tương tự các ngôn ngữ khác, chỉ khác ở trình bày cú pháp.

Bạn có thể lưu trữ nhiều loại dữ liệu khác nhau trong mảng, mỗi phần tử sẽ là một giá trị và một kiểu dữ liệu, thay vì tạo nhiều biến thì bạn chỉ cần tạo một biến và việc này giúp bạn dễ dạng quản lý biến hơn.

Trước tiên ta cần tìm hiểu về cú pháp khai báo biến đã nhé.

1. Khai báo array trong shell script

Không giống như C++ là phải khai báo tổng số phần tử mà bạn chỉ cần bổ sung phần tử trong quá trình chạy chương trình. Ví dụ dưới đây là mình khai báo mảng chứa thông tin của cá nhân mình.

DOMAIN[0]="freetuts.net"
DOMAIN[1]="Nguyen Van Cuong"
DOMAIN[2]="thehalfheart@gmail.com"
DOMAIN[3]="0979306603"

Cú pháp khai báo không khác gì các ngôn ngữ khác phải không các bạn.

Cú pháp
variable[index]=value

Tạo giá trị lúc khởi tạo biến

Nếu bạn muốn khởi tạo các giá trị cho biến lúc khai báo thì làm như sau:

Đối với ksh shell:

set -A array_name value1 value2 ... valuen

Đối với bash shell:

array_name = (value1 ... valuen)

Nhìn vào hai cú pháp trên thì chắc chắn bạn sẽ muốn viết theo cách của bash shell hơn phải không nào ;) Mình sẽ viết series học shell base ở một series khác.

2. Xử lý giá trị của các phần tử trong mảng

Sau khi bạn tạo biến và khai báo các phần tử xong thì đôi lúc cần lấy các thông tin đó ra để sử dụng, lúc này bạn sẽ thực hiện với cú pháp sau:

echo ${variable[index]}

Với ví dụ ở phần trên thì mình sẽ lấy như sau:

#!/bin/sh

DOMAIN[0]="freetuts.net"
DOMAIN[1]="Nguyen Van Cuong"
DOMAIN[2]="thehalfheart@gmail.com"
DOMAIN[3]="0979306603"

echo "Domain ${DOMAIN[0]}"
echo "Author ${DOMAIN[1]}"
echo "Mail ${DOMAIN[2]}"
echo "Phone ${DOMAIN[3]}"

Bạn hãy lưu đoạn code này trong file array.sh, sau đó chạy lênh sau và xem kết quả:

sh array.sh
Domain freetuts.net
Author Nguyen van Cuong
Mail thehalfheart@gmail.com
Phone 0979306603

3. Lời kết

Mảng là kiểu dữ liệu rất quan trọng và hữu ích, nó giúp ta quản lý biến một cách dễ dàng hơn. Hy vọng qua bài này bạn đã biết được cách sử dụng mảng trong shell script ở mức căn bản, sau này khi vào phần nâng cao chắc chắn sẽ gặp lại bài này. 

Bài này mình xin dừng tại đây, bài tiếp theo ta sẽ tìm hiểu các toán tử thông dụng trong shell script Linux.

-------------------#####-------------------

Series có tham khảo một số nguồn như tutorialspoint. Vì mình không muốn cài máy ảo nên sử dụng trực tiếp trên VPS luôn, và VPS mình sử dụng Ubuntu.

Nguồn: freetuts.net