Android

Array bash

Bash Tutorial 6: Arrays

Bash Tutorial 6: Arrays

Daftar Isi:

Anonim

Array adalah salah satu struktur data yang paling banyak digunakan dan mendasar. Anda dapat menganggap bahwa array adalah variabel yang dapat menyimpan banyak variabel di dalamnya., kami akan membahas array Bash, dan menjelaskan cara menggunakannya dalam skrip Bash Anda.

Array Bash

Bash mendukung tipe array numerik yang diindeks secara numerik dan asosiatif. Array numerik dirujuk menggunakan bilangan bulat, dan asosiatif direferensikan menggunakan string.

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

Tidak seperti kebanyakan bahasa pemrograman, elemen array Bash tidak harus dari tipe data yang sama. Anda bisa 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 elemen maksimum yang dapat disimpan dalam array.

Membuat Bash Array

Array dalam Bash dapat diinisialisasi dengan berbagai cara.

Membuat array yang diindeks secara numerik

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

Untuk secara eksplisit mendeklarasikan array, gunakan mendeklarasikan builtin:

declare -a array_name

Salah satu cara untuk membuat array yang diindeks adalah dengan menggunakan formulir berikut:

array_name=value_1 array_name=value_2 array_name=value_n

Di mana index_* adalah bilangan bulat positif.

Cara lain untuk membuat array numerik adalah dengan menentukan daftar elemen dalam tanda kurung, dipisahkan oleh ruang 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 builtin dengan opsi -A (huruf besar):

declare -A array_name

Array asosiatif dapat dibuat menggunakan formulir berikut:

declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz

Di mana index_* dapat berupa string apa pun.

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

declare -A array_name array_name=(=value_foo =value_bar =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 referensi elemen tunggal, Anda perlu tahu indeks elemen.

Setiap elemen dapat direferensikan menggunakan sintaks berikut:

${array_name} Sintaks untuk mengakses elemen array mirip dengan sintaksis sebagian besar bahasa pemrograman. Kurung kurawal ${} diperlukan untuk menghindari operator ekspansi nama file shell.

Mari kita cetak elemen dengan indeks 1 :

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}

Helium

## 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 formulir ${my_array} dikelilingi dengan tanda kutip ganda. Dalam hal ini, * meluas ke satu kata di mana elemen array dipisahkan dengan spasi. @ memperluas setiap elemen array ke kata yang terpisah. Ini sangat penting ketika menggunakan formulir untuk buta huruf melalui elemen array.

Untuk mencetak kunci-kunci array tambahkan ! operator sebelum nama array:

${!array_name}

Berikut ini sebuah contoh:

## 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

Loop melalui array

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

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done

Kode di atas akan beralih ke array dan mencetak setiap elemen di 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}" done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

Cara lain untuk mengulang melalui array adalah untuk mendapatkan panjang array dan menggunakan loop C style :

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} 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="New Element"

Berikut ini sebuah contoh:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="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 sebuah elemen

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

unset my_array

Mari kita lihat sebuah contoh:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## 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 melakukan iterasi melalui array, menghitung panjang array, dan menambah dan menghapus elemen.

terminal bash