GNU/Linux >> Belajar Linux >  >> Linux

Bash Scripting – Array Terindeks Dijelaskan Dengan Contoh

Array adalah tipe struktur data yang digunakan untuk menyimpan nilai dari tipe tertentu. Anda juga dapat menganggap array sebagai variabel tetapi variabel hanya dapat menyimpan satu nilai di mana array dapat menyimpan beberapa nilai di dalamnya. Konsep array tidak hanya terikat pada bash. Bahasa pemrograman apa pun yang Anda gunakan akan memiliki array di dalamnya tetapi dengan perbedaan implementasi.

Bash mendukung dua jenis array:

  • Array Terindeks
  • Array Asosiatif

Array terindeks adalah jenis array tempat elemen (nilai) disimpan dan ditetapkan dengan bilangan bulat mulai dari 0 ke N . Elemen-elemen di dalam array direferensikan menggunakan nomor indeks. Anda akan mengetahui lebih banyak tentang ini di artikel mendatang. Fokus utama artikel ini hanya array yang diindeks.

Cara menginisialisasi array yang diindeks di Bash

Langkah pertama untuk bekerja dengan array adalah membuatnya. Istilah membuat, mendefinisikan, menginisialisasi array akan digunakan secara bergantian, tetapi menunjuk ke arti yang sama - membuat array.

Untuk membuat array, Anda harus menggunakan tanda kurung dan menempatkan elemen array (nilai) di dalam tanda kurung.

$ arr1=( one 2 three 4 )

Poin penting yang perlu diperhatikan:

  • Array Bash dapat menyimpan elemen dari tipe data yang berbeda. Dalam beberapa bahasa pemrograman, Anda hanya dapat menyimpan nilai dalam array dengan tipe yang sama.
  • Tidak ada batasan berapa banyak elemen yang dapat disimpan dalam array. Itu tergantung pada ketersediaan memori sistem Anda.

Anda juga dapat menggunakan declare perintah dengan -a tandai untuk membuat larik terindeks.

$ declare -a arr1
$ arr1=( one 2 three 4 )

Atau,

$ declare -a arr1=( one 2 three 4 )

Cara menambahkan atau melihat elemen array

Anda dapat membuat larik dengan nilai di dalamnya seperti yang ditunjukkan di bagian sebelumnya atau hanya membuat larik kosong dan menambahkan nilai nanti. Di bawah ini adalah cara Anda membuat array kosong.

$ locations=()

Setiap elemen dalam larik memiliki nilai indeks terkait mulai dari 0 ke N . Anda harus menambahkan elemen baru ke array menggunakan posisi indeks.

$ locations[0]="Chennai"
$ locations[1]="Mumbai"

Berikut adalah ilustrasi grafis menambahkan elemen ke array.

Untuk melihat elemen dalam array, Anda dapat menggunakan salah satu sintaks berikut.

$ echo ${locations[@]}
$ echo ${locations[*]}

Untuk mengetahui perbedaan antara @ dan * dan cara kerjanya dengan larik, lihat bagian "Mengulangi elemen larik" di Bash For Loop kami panduan.

Jika Anda mencoba membuat daftar elemen array tanpa menggunakan @ atau * hanya elemen pertama dalam larik yang akan dicetak.

$ echo ${locations}

Anda dapat mengakses elemen tertentu secara langsung menggunakan posisi indeksnya.

$ echo ${locations[1]}

Nilai indeks array

Di bagian sebelumnya, saya telah menunjukkan cara menambahkan elemen dalam array menggunakan posisi indeks. Saat Anda menambahkan array menggunakan posisi indeks, Anda dapat melewati dan menambahkan elemen ke posisi indeks yang berbeda.

Lokasi larik memiliki dua elemen di posisi 0 dan 1 . Sekarang saya dapat melewati indeks 2 dan menambahkan ke posisi indeks yang berbeda.

$ locations[5]="Delhi"

Dari gambar di atas, Anda dapat melihat saya telah menambahkan elemen baru ke array pada posisi indeks 5.

Jika Anda ingin mencetak nilai indeks elemen, awali array dengan "!" simbol seperti di bawah ini:

$ echo ${!locations[@]}

Ini hanya akan mencetak nilai indeks Alih-alih mencetak elemen.

Untuk mencetak indeks dan elemen, gunakan cuplikan berikut.

for val in ${!locations[@]}
do
   echo "index = ${val} , value = ${locations[$val]}"
done

Menambahkan nilai ke Array

Anda dapat menambahkan elemen baru ke array tanpa menggunakan nilai indeksnya dan ini akan menambahkan elemen ke array.

locations=( Chennai Mumbai Delhi )
locations+=( Bangalore )
locations+=( Hyderabad )
$ echo ${locations[@]}
$ echo ${!locations[@]}

Menemukan panjang array

Anda bisa mendapatkan berapa banyak elemen yang ada dalam array dengan mengawali # simbol sebelum larik.

$ echo ${#locations[@]}

Menggunakan # yang sama simbol, Anda juga dapat mengetahui apakah array kosong atau tidak.

if [[ ${#locations[@]} -ne 0 ]]; then
    echo "Array is Not empty"
else
    echo "Array is Empty"
fi

Hapus elemen dari array

Untuk menghapus elemen dari array, Anda dapat menggunakan unset memerintah. Lihatlah contoh di bawah ini di mana menggunakan unset perintahkan elemen dari index(2) dihapus.

$ echo ${locations[@]}
$ unset locations[2]
$ echo ${locations[@]}

Hapus larik

Untuk menghapus array, Anda dapat menggunakan unset yang sama perintah.

$ unset locations
$ echo ${locations[@]}

Mengosongkan array

Terkadang Anda mungkin ingin menghapus semua elemen dari larik dan membiarkan larik tetap kosong. Dalam hal ini, Anda cukup membuat ulang array.

$ echo ${locations[@]}
Chennai Mumbai Delhi Hyderabad Bangalore
$ locations=()
$ echo ${locations[@]}

Simpan keluaran perintah sebagai larik

Anda dapat menjalankan perintah apa pun dan mencoba menyimpan output dalam array. Perintah harus diapit dengan kurung untuk output yang akan disimpan sebagai array.

$ path_list=( $(echo $PATH | tr ":" "\n") )
$ echo ${path_list[@]}

Pemotongan array

Mengiris memberi Anda fleksibilitas untuk menarik elemen tertentu dari larik berdasarkan posisi indeksnya.

Berikut adalah sintaks untuk mengiris:

${locations[@]:index:length}

Jika Anda ingin mengambil semua elemen tetapi dari posisi indeks awal tertentu, Anda dapat melakukannya dengan cara berikut dengan menggunakan indeks saja.

$ echo ${locations[@]:index} # syntax
$ echo ${locations[@]:2}

Pada contoh di atas, array akan dicetak mulai dari posisi Indeks 2 dan hingga elemen terakhir. Jika Anda menentukan panjang bersama dengan indeks, maka akan menggunakan rumus berikut untuk mengiris array.

From index to index+length-1 (inclusive) # Formula
$ echo ${locations[@]:1:3}

Jika Anda melewatkan indeks dan memberikan panjangnya saja, maka indeks akan diiris menggunakan rumus berikut.

From Index 0 to length-1 (inclusive)
$ echo ${locations[@]::4}

Kesimpulan

Dalam artikel ini, saya telah memandu Anda melalui array terindeks bash . Array sangat penting ketika Anda mulai menulis skrip bash yang kompleks. Mereka memberi Anda kemampuan untuk menyimpan, mengambil, dan memanipulasi data dari jenis yang berbeda dengan mudah. Tidak seperti bahasa pemrograman seperti python, tidak ada cara bawaan untuk menggunakan array dengan mudah untuk melakukan beberapa tugas kompleks tetapi masih dapat dicapai.

Dalam panduan berikutnya, kita akan membahas tentang Array asosiatif secara rinci.

  • Bash Scripting – Array Asosiatif Dijelaskan Dengan Contoh

Bacaan terkait:

  • Bash Scripting – Sementara Dan Sampai Perulangan Dijelaskan Dengan Contoh
  • Bash Scripting – Fungsi Dijelaskan Dengan Contoh
  • Bash Scripting – Variabel Dijelaskan Dengan Contoh
  • Pengalihan Bash Dijelaskan Dengan Contoh
  • Perintah Bash Echo Dijelaskan Dengan Contoh Di Linux
  • Tutorial Bash Heredoc Untuk Pemula

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

  2. Bash Array Dengan Contoh

  3. Tutorial Bash Array Terbaik dengan 15 Contoh

  1. Cara Menulis Skrip Bash dengan Contoh

  2. Pernyataan Bash If-Else Dengan Contoh

  3. Array AWK Dijelaskan dengan 5 Contoh Praktis

  1. Tutorial Bash HereDoc Dengan Contoh

  2. Perintah Bash Echo Dijelaskan Dengan Contoh Di Linux

  3. Pengalihan Bash Dijelaskan Dengan Contoh