Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Mảng Bash - Cách khai báo một mảng chuỗi trong tập lệnh Bash

Các tập lệnh Bash cung cấp cho bạn một cách thuận tiện để tự động hóa các tác vụ dòng lệnh.

Với Bash, bạn có thể làm nhiều điều tương tự như bạn sẽ làm trong các ngôn ngữ lập trình hoặc kịch bản khác. Bạn có thể tạo và sử dụng các biến, thực thi các vòng lặp, sử dụng logic có điều kiện và lưu trữ dữ liệu trong mảng.

Mặc dù chức năng có thể rất quen thuộc, nhưng cú pháp của Bash có thể phức tạp. Trong bài viết này, bạn sẽ học cách khai báo mảng và sau đó là cách sử dụng chúng trong mã của bạn.

Cách khai báo một mảng trong Bash

Khai báo một mảng trong Bash rất dễ dàng, nhưng hãy chú ý đến cú pháp. Nếu bạn đã quen lập trình bằng các ngôn ngữ khác, mã có thể trông quen thuộc, nhưng có những điểm khác biệt nhỏ mà bạn dễ bỏ qua.

Để khai báo mảng của bạn, hãy làm theo các bước sau:

  1. Đặt tên cho mảng của bạn
  2. Theo sau tên biến đó bằng dấu bằng. Dấu bằng không nên có bất kỳ khoảng trống nào xung quanh nó
  3. Đặt mảng trong dấu ngoặc đơn (không phải dấu ngoặc như trong JavaScript)
  4. Nhập các chuỗi của bạn bằng cách sử dụng dấu ngoặc kép, nhưng không có dấu phẩy giữa họ

Khai báo mảng của bạn sẽ trông giống như sau:

myArray=("cat" "dog" "mouse" "frog)

Đó là nó! Thật đơn giản.

Cách truy cập một mảng trong Bash

Có một số cách khác nhau để lặp lại mảng của bạn. Bạn có thể lặp qua chính các phần tử hoặc lặp qua các chỉ số.

Cách lặp qua các phần tử mảng

Để lặp qua các phần tử mảng, mã của bạn sẽ cần trông giống như sau:

for str in ${myArray[@]}; do
  echo $str
done

Để chia nhỏ điều đó:điều này giống như sử dụng forEach trong JavaScript. Đối với mỗi chuỗi (str) trong mảng (myArray), hãy in chuỗi đó.

Đầu ra của vòng lặp này trông giống như sau:

cat
dog
mouse
frog

Lưu ý :@ biểu tượng trong dấu ngoặc vuông cho biết rằng bạn đang lặp lại tất cả của các phần tử trong mảng. Nếu bạn bỏ qua và chỉ viết for str in ${myArray} , chỉ chuỗi đầu tiên trong mảng sẽ được in.

Cách lặp qua các chỉ số mảng

Ngoài ra, bạn có thể lặp qua các chỉ số của mảng. Đây giống như một for vòng lặp trong JavaScript và hữu ích khi bạn muốn có thể truy cập vào chỉ mục của từng phần tử.

Để sử dụng phương pháp này, mã của bạn sẽ cần trông giống như sau:

for i in ${!myArray[@]}; do
  echo "element $i is ${myArray[$i]}"
done

Đầu ra sẽ như thế này:

element 0 is cat
element 1 is dog
element 2 is mouse
element 3 is frog

Lưu ý :Dấu chấm than ở đầu myArray biến cho biết rằng bạn đang truy cập vào chỉ số của mảng chứ không phải của chính các phần tử. Điều này có thể gây nhầm lẫn nếu bạn đã quen với dấu chấm than biểu thị sự phủ định, vì vậy hãy chú ý điều đó.

Một lưu ý khác :Bash thường không yêu cầu dấu ngoặc nhọn cho các biến, nhưng nó có cho mảng. Vì vậy, bạn sẽ nhận thấy rằng khi bạn tham chiếu một mảng, bạn làm như vậy với cú pháp ${myArray} , nhưng khi bạn tham chiếu một chuỗi hoặc số, bạn chỉ cần sử dụng ký hiệu đô la:$i .

Kết luận

Các tập lệnh Bash rất hữu ích để tạo hành vi dòng lệnh tự động và mảng là một công cụ tuyệt vời mà bạn có thể sử dụng để lưu trữ nhiều phần dữ liệu.

Khai báo và sử dụng chúng không khó, nhưng nó khác với các ngôn ngữ khác, vì vậy hãy chú ý để tránh mắc lỗi.