GNU/Linux >> Belajar Linux >  >> Linux

Array Bash

Array adalah salah satu struktur data yang paling banyak digunakan dan mendasar. Anda dapat menganggap array adalah variabel yang dapat menyimpan banyak variabel di dalamnya.

Dalam artikel ini, kami akan membahas array Bash, dan menjelaskan cara menggunakannya dalam skrip Bash Anda.

Bash Array #

Bash mendukung tipe array berindeks numerik dan asosiatif satu dimensi. Array numerik direferensikan menggunakan bilangan bulat, dan asosiatif direferensikan menggunakan string.

Array yang diindeks secara numerik dapat diakses dari akhir menggunakan indeks negatif, indeks -1 referensi elemen terakhir. Indeks tidak harus bersebelahan.

Tidak seperti kebanyakan bahasa pemrograman, elemen array Bash tidak harus memiliki tipe data yang sama. Anda dapat membuat larik yang berisi string dan angka.

Bash tidak mendukung array multidimensi, dan Anda tidak dapat memiliki elemen array yang juga array.

Tidak ada batasan jumlah maksimum elemen yang dapat disimpan dalam array.

Membuat Array Bash #

Array di Bash dapat diinisialisasi dengan cara yang berbeda.

Membuat array yang diindeks secara numerik #

Variabel bash tidak diketik, variabel apa pun dapat digunakan sebagai array yang diindeks tanpa mendeklarasikannya.

Untuk mendeklarasikan array secara eksplisit, gunakan deklarasi bawaan:

declare -a array_name

Salah satu cara untuk membuat array terindeks adalah dengan menggunakan form berikut:

array_name[index_1]=value_1
array_name[index_2]=value_2
array_name[index_n]=value_n

Dimana index_* adalah bilangan bulat positif.

Cara lain untuk membuat array numerik adalah dengan menentukan daftar elemen di dalam tanda kurung, dipisahkan dengan spasi kosong:

array_name=( element_1 element_2 element_N )

Ketika array dibuat menggunakan formulir di atas, pengindeksan dimulai dari nol yaitu elemen pertama memiliki indeks 0 .

Membuat array asosiatif #

Tidak seperti yang diindeks secara numerik, array asosiatif harus dideklarasikan sebelum dapat digunakan.

Untuk mendeklarasikan array asosiatif gunakan declare bawaan dengan -A opsi (huruf besar):

declare -A array_name

Array asosiatif dapat dibuat menggunakan bentuk berikut:

declare -A array_name

array_name[index_foo]=value_foo
array_name[index_bar]=value_bar
array_name[index_xyz]=value_xyz

Dimana index_* bisa berupa string apa saja.

Anda juga dapat membuat array asosiatif menggunakan formulir di bawah ini:

declare -A array_name

array_name=( 
  [index_foo]=value_foo 
  [index_bar]=value_bar 
  [index_xyz]=value_xyz 
)

Operasi Array #

Sintaks array Bash mungkin terlihat sedikit aneh pada awalnya, tetapi akan lebih masuk akal setelah Anda membaca artikel ini.

Elemen Referensi #

Untuk mereferensikan satu elemen, Anda perlu mengetahui indeks elemen.

Setiap elemen dapat direferensikan menggunakan sintaks berikut:

${array_name[index]}
Sintaks untuk mengakses elemen array mirip dengan sintaks kebanyakan bahasa pemrograman. Tanda kurung kurawal ${} diperlukan untuk menghindari operator perluasan nama file shell.

Mari cetak elemen dengan indeks 1 :

## declare the array
declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## print element
echo ${my_array[1]}
Helium

Jika Anda menggunakan @ atau * sebagai indeks, kata diperluas ke semua anggota array. Untuk mencetak semua elemen yang akan Anda gunakan:

## declare the array
declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## print all elements
echo "${my_array[@]}"
Hydrogen Helium Lithium Beryllium

Satu-satunya perbedaan antara @ dan * adalah ketika bentuk ${my_array[x]} dikelilingi dengan tanda kutip ganda. Dalam hal ini, * diperluas ke satu kata di mana elemen array dipisahkan dengan spasi. @ memperluas setiap elemen array ke kata yang terpisah. Ini sangat penting saat menggunakan formulir untuk buta huruf melalui elemen array.

Untuk mencetak kunci larik tambahkan ! operator sebelum nama larik:

${!array_name[index]}

Ini contohnya:

## declare the array
declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## print all elements
echo "${!my_array[@]}"
0 1 2 3

Panjang Array #

Untuk mendapatkan panjang array, gunakan formulir berikut:

${#array_name[@]}
Sintaksnya sama seperti ketika mereferensikan semua elemen dengan penambahan # karakter sebelum nama array.
## declare the array
declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## array Length
echo ${#my_array[@]}
4

Mengulangi array #

Cara paling umum untuk mengulangi setiap item dalam array adalah dengan menggunakan for loop:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## Array Loop
for i in "${my_array[@]}"
do 
  echo "$i"
done

Kode di atas akan mengulangi array dan mencetak setiap elemen dalam baris baru:

Hydrogen
Helium
Lithium
Beryllium

Berikut adalah contoh cara mencetak semua kunci dan nilai:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## Array Loop
for i in "${!my_array[@]}"
do
  echo "$i" "${my_array[$i]}"
done
0 Hydrogen
1 Helium
2 Lithium
3 Beryllium

Cara lain untuk mengulang array adalah dengan mendapatkan panjang array dan menggunakan C style lingkaran:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

# Length of the array
length=${#my_array[@]}

# Array Loop
for (( i=0; i < ${length}; i++ ))
do
  echo $i ${my_array[$i]}
done
0 Hydrogen
1 Helium
2 Lithium
3 Beryllium

Tambahkan elemen baru #

Untuk menambahkan elemen baru ke array bash dan menentukan indeksnya, gunakan formulir berikut:

my_array[index_n]="New Element"

Ini contohnya:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## add new element
my_array[9]="Aluminum"

## print all elements
echo "${my_array[@]}"
Hydrogen Helium Lithium Beryllium Aluminum

Cara lain untuk menambahkan elemen baru ke array tanpa menentukan indeks adalah dengan menggunakan += operator. Anda dapat menambahkan satu atau beberapa elemen:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## add new elements
my_array+=( Cobalt Nickel )

## print all elements
echo "${my_array[@]}"
Hydrogen Helium Lithium Beryllium Cobalt Nickel

Hapus elemen #

Untuk menghapus satu elemen, Anda harus mengetahui indeks elemen. Sebuah elemen dapat dihapus menggunakan unset perintah:

unset my_array[index]

Mari kita lihat contohnya:

declare -a my_array=( "Hydrogen" "Helium" "Lithium" "Beryllium" )

## remove element
unset my_array[2]

## print all elements
echo "${my_array[@]}"
Hydrogen Helium Beryllium

Kesimpulan #

Kami telah menjelaskan cara membuat array yang diindeks secara numerik dan asosiatif. Kami juga telah menunjukkan cara mengulangi array, menghitung panjang array, dan menambah dan menghapus elemen.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Bagaimana Cara Membuat Array Elemen Unik Dari String/array Di Bash?

  2. Bash Array Dari Array?

  3. Dapatkan Semua File Tapi File Dalam Array – Bash?

  1. Tutorial Bash Array Terbaik dengan 15 Contoh

  2. Array di Bash Tidak Ditemukan

  3. konversi keluaran bash `ls` ke array json

  1. Kurung Tunggal Dalam Penugasan Variabel Bash?

  2. Bash menangkap output dari awk ke dalam array

  3. Konversikan string teks dalam bash ke array