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)
Quảng cáo

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

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để 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:




Tài liệu giáo viên