Apa Are Bash Kamus di Linux, dan Bagaimana Anda Gunakan Them?

Jun 16, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock.com

Kamus bash memberi Anda peta hash dan array asosiatif dalam skrip Shell Linux. Kami akan menunjukkan kepada Anda bagaimana menggunakan struktur data yang kuat dan bermanfaat dalam skrip Shell Linux Anda sendiri.

Mawar dengan nama lain

Nama formal untuk kamus adalah array asosiatif. Mereka juga disebut tabel hash dan peta hash. Mereka adalah struktur data yang berfungsi sama dengan array reguler, tetapi dengan perbedaan yang signifikan.

Array adalah kumpulan nilai data yang diadakan dalam satu struktur data. Untuk mengakses salah satu nilai data, yang dikenal sebagai elemen array, Anda perlu mengetahui posisi mereka dalam array. Posisi elemen array dalam array dikenal sebagai indeksnya, sehingga jenis-jenis array ini dikenal sebagai array yang diindeks. Mereka adalah jenis array yang paling umum digunakan.

Namun, mereka memiliki kekurangan. Bagaimana Anda mengakses elemen array jika Anda tidak tahu posisinya dalam daftar? Anda perlu menjalankan semua elemen dalam array, menguji untuk melihat apakah nilai di lokasi itu adalah yang Anda cari.

Array asosiatif mengatasi masalah itu. Mereka tidak menggunakan bilangan bulat untuk secara unik mengidentifikasi elemen array. Mereka menggunakan kata-kata unik yang dikenal sebagai kata kunci. Anda dapat mengambil nilai untuk elemen array dengan menggunakan kata kunci, terlepas dari di mana diposisikan dalam array. Dengan array yang diindeks, angka integer yang mewakili posisi dalam array berada dalam urutan menaik. Kata kunci dalam array asosiatif dapat dalam urutan apa pun.

Anda dapat mencari nilai dalam array asosiatif dengan mencari dengan kata kunci. Mencari kata dan mengambil nilai yang terkait dengan meniru mencari kata dalam kamus dan menemukan maknanya. Itu sebabnya array asosiatif dikenal sebagai kamus.

Bash 4.0 atau lebih tinggi

Array asosiatif didukung di The Bash Shell. versi 4.0 atau lebih tinggi. Jika Anda menggunakan distribusi Linux saat ini, Anda harus baik-baik saja. Untuk memeriksa versi bash Anda, gunakan perintah ini:

 Bash --version 

Mesin yang digunakan untuk meneliti artikel ini memiliki bash 5.1.4 diinstal, jadi kami baik untuk pergi.

Prinsip dasar

Untuk membuat array asosiatif pada baris perintah terminal atau dalam skrip, kami menggunakan perintah BASH DECARE. NS -A (Associative) Opsi memberi tahu BASH bahwa ini akan menjadi array asosiatif dan bukan array yang diindeks.

 mendeklarasikan akronim 

Ini menciptakan array asosiatif yang disebut "akronim."

Untuk memasukkan beberapa data ke dalam array kami, kami perlu memberikan kata kunci dan nilai. Kita dapat melakukan ini menggunakan format ini:

 array-name [tombol] = nilai 

Mari tambahkan beberapa elemen array:

 Akronim [ACK] = Pengakuan 
 Akronim [BGP] = "Border Gateway Protocol" 
 Akronim [CIDR] = "Routing Inter Domain Berkelas" 
 Akronim [DHCP] = "Protokol Konfigurasi Host Dinamis" 
 Akronim [EOF] = "ujung bingkai" 

Perintah-perintah tersebut mendefinisikan lima elemen array. Perhatikan bahwa nilai-nilai dibungkus dengan tanda kutip jika ada ruang dalam nilai. Kata kunci kami dimasukkan dalam urutan abjad, tetapi mereka dapat dimasukkan dalam urutan apa pun yang Anda suka. Kata kunci harus unik. Jika Anda mencoba membuat dua entri dengan kata kunci yang sama, nilai kedua yang Anda masukkan akan menimpa yang pertama. Anda masih hanya memiliki satu entri dengan kata kunci itu, dan itu akan dikaitkan dengan nilai kedua yang Anda tambahkan.

Untuk mengambil nilai dari array, kami menggunakan perintah dalam format ini:

 $ {array-name [tombol]} 

Kita dapat menggunakan gema untuk mengirim output ke jendela terminal:

 echo $ {acronys [ack]} 
 echo $ {acronys [dhcp]} 

Menggunakan loop.

Array meminjamkan diri untuk digunakan dalam loop dengan sangat baik. Array asosiatif tidak terkecuali. Loop memberikan cara yang efisien untuk memunculkan urutan tindakan tanpa bagian kode berulang. Sebelum kita melihat loop, ada cara yang efisien untuk mendeklarasikan array.

Kami membuat array menggunakan menyatakan perintah (sama -A Opsi seperti sebelumnya), tetapi kami menyediakan kata kunci dan nilai sebagai daftar pada baris perintah.

 mendeklarasikan -a negara = ([alb] = albania [bhr] = Bahrain [CMR] = Kamerun [DNK] = Denmark [EGY] = Mesir) 

Nama array adalah "negara," dan terhubung ke daftar nilai dengan tanda sama dengan tanda " = . " Daftar Nilai dibungkus dalam tanda kurung " () "Dan setiap kata kunci dibungkus dengan kurung" [] ". Perhatikan bahwa tidak ada koma yang memisahkan nilai. Jika Anda memiliki string nilai yang berisi spasi, Anda harus membungkusnya dalam tanda kutip.

Untuk membuat array asosiatif mengembalikan kata kunci, bukan nilai, tambahkan tanda seru " ! "Di depan nama array. Simbol pada " @ "Dapat digunakan sebagai wildcard, yang berarti semua elemen array.

Ini untuk Loop akan mencantumkan semua kata kunci:

 Untuk Kunci di "$ {! Negara [@]}"; lakukan echo $ tombol; dilakukan 

Perhatikan bahwa kata kunci tidak selalu tercantum dalam urutan yang dibuat, tetapi itu tidak masalah. Array asosiatif tidak bergantung pada indeks yang dipesan.

Kami juga dapat menggunakan ekspansi parameter untuk membuat daftar semua kata kunci. Mereka akan tercantum pada satu baris, bukan satu per baris.

 Echo "$ {! Negara [@]}" 
 echo "$ {! Akronim [@]}" 

Kami dapat menambah kami untuk loop untuk mencetak kata kunci dan nilai pada saat yang sama.

 Untuk kunci dalam "$ {! Akronim [@]}"; Lakukan echo "$ Key - $ {akronim [$ tombol]}"; dilakukan 

Jika kita ingin tahu berapa banyak elemen yang ada dalam array, kita dapat menggunakan hash "#" di depan nama array bukannya tanda seru.

 Echo "$ {! Negara [@]}" 
 echo "$ {! Akronim [@]}" 

Memeriksa bahwa elemen array ada

Jika Anda mencari kata kunci tetapi tidak ada elemen array, nilai pengembalian akan menjadi string kosong. Terkadang bermanfaat untuk memiliki indikator yang berbeda untuk ada atau tidak adanya elemen array.

Kita dapat memeriksa keberadaan elemen array menggunakan " + _ "Operator. Perhatikan bahwa ini datang setelah kata kunci, bukan di depan nama array seperti operator sebelumnya yang pernah kita lihat.

 Jika [$ {akronim [EOF] + _}]; lalu gema "ditemukan"; Echo lain "tidak ditemukan"; fi 
 Jika [$ {acronim [ftp] + _}]; lalu gema "ditemukan"; Echo lain "tidak ditemukan"; fi 

Elemen array dengan kata kunci "EOF" ditemukan dalam array, tetapi elemen array dengan kata kunci "ftp" tidak.

Menambahkan Elemen Array.

Menambahkan elemen baru ke array asosiatif itu mudah. Tidak seperti beberapa bahasa pemrograman, Anda tidak perlu menentukan ukuran array Anda saat Anda mendeklarasikannya. Anda dapat terus menambahkan elemen baru tanpa menabrak batas atas yang telah ditentukan.

Untuk menambahkan elemen baru ke array, kami menggunakan " + = "Operator.

 Negara + = ([[FJI] = Fiji) 
 Echo "$ (# negara [@]}" 
 echo $ {negara [FJI]} 

Jumlah elemen dalam array sekarang enam, dan mencari kata kunci baru menemukan elemen array dan mengembalikan nilainya.

Menghapus elemen dan array array

NS tak disetel Perintah digunakan untuk menghapus elemen array. Jika kata kunci memiliki spasi di dalamnya, bungkus dalam tanda kutip.

 Untet Akronim [EOF] 
 Jika [$ {akronim [EOF] + _}]; lalu gema "ditemukan"; Echo lain "tidak ditemukan"; fi 

Untuk menghapus seluruh array, gunakan tak disetel dengan nama array.

 Negara-negara Untet 

Menggunakan variabel dengan array

Menggunakan variabel dengan array asosiatif sangat mudah. Dalam contoh ini, kami akan menetapkan kunci variabel ke string "EOF." Kami akan menggunakan variabel ketika kami menambahkan elemen array baru ke array. Sebenarnya, kami mengganti elemen array yang kami hapus sebelumnya.

Kami akan mengambil elemen array baru dengan menyebutnya dengan kata kunci baru dan juga, dengan menggunakan variabel. Jika kata kunci berisi spasi, Anda harus membungkus nama variabel dalam tanda kutip.

 Kunci = EOF 
 Akronim [$ Key] = "ujung bingkai" 
 echo $ {acronys [eof]} 
 echo $ {acronys [$ tombol]} 

Menjadi kreatif

Contoh kami telah menjadi koleksi informasi di mana setiap elemen array terlepas dari semua yang lain, seperti kamus. Masing-masing adalah definisi unik. Tetapi array asosiatif dapat dengan mudah memegang berbagai informasi semua terkait dengan satu hal, seperti spesifikasi dari berbagai keping perangkat keras komputer:

 mendeklarasikan -a Spesifikasi 
 Spesifikasi [CPU] = "Dual Core AMD Ryzen 5 3600" 
 Spesifikasi [Kecepatan] = "3600 MHz" 
 Spesifikasi [Kernel] = "5.11.0-17-Generic x86_64" 
 Spesifikasi [MEM] = "1978.5 MIB" 
 Spesifikasi [Penyimpanan] = "32 GIB" 
 Spesifikasi [Shell] = "Bash" 
 Echo $ {spesifikasi [CPU]} 

Menulis secara efisien dalam bahasa berarti mengetahui mekanisme dan struktur yang ditawarkannya, dan memilih yang paling tepat untuk masalah yang Anda coba selesaikan. Array asosiatif memberi Anda cara yang mudah digunakan untuk menyimpan data yang dapat Anda cari berdasarkan nama, seperti kamus.


Linux - Artikel Terpopuler

Cara Mengunci Mac Anda Menggunakan Terminal

Linux Feb 16, 2025

Salah satu aturan pertama cybersecurity adalah untuk selalu mengunci komputer Anda sebelum melangkah keluar darinya. Meskipun mungkin bukan cara tercepat, Anda dapat mengunci Mac Apple A..


Bagaimana memilih antara Ubuntu, Kubuntu, Xubuntu, dan Lubuntu

Linux Mar 19, 2025

TOMEQS / Shutterstock.com Ada lebih dari satu Ubuntu. Anda dapat mengunduh Ubuntu, Kubuntu, Xubuntu, atau Lubuntu: Tapi apa bedanya, dan mana yang harus Anda p..


Apa yang Baru di GNOME 40?

Linux Jul 23, 2025

Gnome foundation. GNOME 40 memiliki lebih dari skema penomoran baru. Seiring dengan tampilan barunya datang cara kerja baru. Metafora vertikal lama hilang, d..


5 Specialized Distribusi Linux dengan Fitur Unik

Linux Jul 20, 2025

Membaca melalui daftar panjang kartun yang ada dari distro Linux yang ada, rasa berjemur dan pemotretan off-pucuk semua mulai kabur bersama. Untuk memperbaiki itu, kami telah mengumpulkan ..


Cara mengkonfigurasi atau menonaktifkan pemberitahuan pembaruan Linux Mint

Linux Jul 9, 2025

Sudah cukup pemberitahuan pembaruan Mint Linux? Atau mungkin Anda sangat khawatir dengan tetap mutakhir, Anda ingin melihatnya lebih? Either way, menyesuaikan notifikasi atau mematikannya ..


Apa kelemahan beralih ke Linux?

Linux Oct 27, 2025

Larry Ewing dan GIMP Linux Penginjil (seperti diriku) cepat menunjukkan banyak manfaat beralih dari Windows dan MacOS. Tetapi tidak ada sistem operasi yang s..


Laptop Gaming Linux baru ini memiliki spesifikasi untuk menjalankan apa pun

Linux Oct 20, 2025

Komputer juno Linux dan gaming mulai bersatu lebih banyak akhir-akhir ini. NS Dek uap sedang dalam perjalanan dengan Linux diinstal, dan Juno baru saja mengu..


Apa Apakah Unix Epoch, dan Bagaimana Apakah Unix Waktu Pekerjaan?

Linux Nov 10, 2024

Mikhail Leonov / Shutterstock Unix menyimpan waktu sebagai jumlah detik sejak 1 Januari 1970. Dan itu berarti Linux juga. Kami menjelaskan sistem yang tampakny..


Kategori