Sử dụng mảng trong Shell




Một biến shell là có đủ khả năng để giữ một giá trị đơn. Kiểu này của các biến được gọi là các biến scalar.

Shell hỗ trợ các kiểu khác nhau của biến được gọi là một biến mảng mà có thể giữ nhiều giá trị tại cùng một thời điểm. Mảng cung cập một phương thức tạo nhóm một tập hợp các biến. Thay vì tạo một tên mới cho mỗi biến được yêu cầu, bạn có thể sử dụng một biến mảng để lưu tất cả các biến khác.

Tất cả các quy tắc về tên được bàn luận trong chương Các biến shell sẽ được áp dụng trong khi đặt tên mảng.

Định nghĩa các giá trị mảng trong Unix/Linux

Điểm khác nhau giữa một biến mảng và một biến scalar có thể được giải thích như sau:

Khi bạn đang cố gắng để biểu diễn tên của các sinh viên khác nhau như một tập hợp của biến. Mỗi biến đơn là một biến scalar như sau:

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

Chúng ta sử dụng một mảng đơn để giữ tất cả các tên đã được đề cập ở trên. Sau đây là một phương thức đơn giản cho việc tạo một biến mảng để gán một giá trị cho một trong số chúng. Điều này được diễn tả như sau:

array_name[index]=value

Tại đây array_name là tên của mảng, index là chỉ mục của các item trong mảng mà bạn muốn thiết lập và value là giá trị mà bạn muốn thiết lập cho mục đó.

Dưới đây là ví dụ, các lệnh sau:

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"

Nếu bạn đang sử dụng ksh shell thì tại đây cú pháp của mảng là:

set -A array_name value1 value2 ... valuen

Nếu bạn đang sử dụng bash shell thì tại đây cú pháp của mảng là:

array_name=(value1 ... valuen)

Truy cập vào các giá trị mảng trong Unix/Linux

Sau khi bạn đã thiết lập bất kỳ giá trị mảng nào, bạn có thể truy cập vào nó như sau:


Tại đây array_name là tên mảng, và index là chỉ mục của các giá trị được truy cập. Dưới đây là ví dụ đơn giản:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: "
echo "Second Index: "

Nó sẽ tạo ra kết quả sau:

$./test.sh
First Index: Zara
Second Index: Qadir

Bạn có thể truy cập vào tất cả các item trong một mảng theo một trong các cách sau:

 ${array_name[*]}
 ${array_name[@]}

Tại đây array_name là tên mảng bạn đang quan tâm đến. Dưới đây là ví dụ đơn giản:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method:${NAME[*]}"
echo "Second Method:${NAME[@]}"

Nó sẽ tạo ra kết quả sau:

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

Loạt bài hướng dẫn học UNIX cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow https://www.facebook.com/vietjackteam/ để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học UNIX phổ biến khác tại VietJack: