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.
Bài viết này được đăng tại [kiso.vn]
DOMAIN[0]="kiso.vn" 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.
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]="kiso.vn" 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 kiso.vn 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.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Khai báo array trong shell scriptTạo giá trị...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Khai báo array trong shell scriptTạo giá trị lúc khởi tạo biến2. Xử lý giá trị của các phần tử trong mảng3. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Khai báo array trong shell scriptTạo giá trị lúc khởi tạo biến2. Xử lý giá trị của các phần tử trong mảng3. Lời kếtV. Phân tích và khai thác các lỗ hổng...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Khai báo array trong shell scriptTạo giá trị lúc khởi tạo biến2. Xử lý giá trị của các phần tử trong mảng3. Lời kếtV. Phân tích và khai thác các lỗ hổng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Khai báo array trong shell scriptTạo giá trị lúc khởi tạo biến2. Xử lý giá trị của các phần tử trong mảng3. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện?...