Pada artikel ini, saya akan menjelaskan bagaimana cara membuat variabel, array, dan lain-lain yang berkaitan, pada shell Bash.
Seperti yang sudah pernah dibahas pada artikel Belajar Bash Scripting lain, bahwa tentunya Bash Scripting yang dibahas ini tidaklah POSIX-compliant atau istilahnya Bashism.
Aturan penamaan
Dalam membuat variabel atau array, ketentuan dalam pemberian nama adalah sebagai berikut:
- Tidak diawali dengan angka.
- Tidak mengandung tanda pentung, tanda @, tanda pagar # dan asterisk (*).
- Variabel dengan huruf kapital seluruhnya, dikhususkan untuk variabel internal shell dan varibel environment.
Contoh:
|
|
Variabel
Membuat variabel
Pada Bash shell, variabel bisa dibuat dengan cara seperti ini:
|
|
Perbedaan mengenai penggunaan tanda petik dan petik tunggal akan dijelaskan nanti.
Perlu diperhatikan bahwa untuk membuat variabel, tidak boleh ada spasi diantara tanda =
, misalnya:
|
|
Melihat isi variabel
Isi variabel bisa dilihat dengan command echo
atau printf
:
|
|
Mengisi variabel dari output suatu command
Suatu variabel bisa diisi dengan output dari suatu command tertentu dengan menggunakan 2 cara:
- Menggunakan backticks `…`
- Menggunakan command substitution
$(...)
Contoh:
|
|
Cara kedua lebih disarankan karena 1) backticks sudah dianggap telah deprecated (ditinggalkan), 2) command substitution memungkinkan untuk digunakan secara berlapis. Misal:
|
|
Menambah isi variabel (append)
Menambah isi variabel (yang berupa string) bisa dilakukan seperti membuat variabel tersebut namun tidak sekedar dengan tanda =
saja, tetapi dengan +=
, contoh:
|
|
Kalkulasi aritmatis pada variabel (integer)
Membuat variabel berupa hasil kalkulasi 2 bilangan bulat (atau lebih), bisa dilakukan dengan dua tanda kurung $((...))
|
|
Variabel readonly
Variabel readonly adalah variabel yang tidak bisa berubah setelah ditetapkan isinya, sama dengan konsep variabel konstan pada keumuman bahasa pemrograman.
|
|
Variabel lokal
Variabel lokal adalah variabel yang ruang lingkupnya hanya pada suatu fungsi saja. Ketika dipanggil diluar fungsi tersebut, maka variabel yang dipanggil tersebut adalah variabel yang berbeda.
|
|
Membuat variabel dengan printf
Command printf
adalah salah satu tool builtin pada shell Bash. Selain berfungsi seperti echo
, printf
juga bisa digunakan untuk menetapkan suatu variabel.
|
|
Membuat variabel berdasarkan input pengguna
Yang dimaksud disini adalah membuat variabel dengan cara interaktif, yaitu membutuhkan inputan dari pengguna shell. Seperti “Siapa namamu?”, kemudian pengguna mengisikan namanya.
|
|
Flag -r
diatas berfungsi untuk menghindari backslash dari melakukan escaping karakter apapun. Sedangkan -p
berfungsi untuk mem-print serangkaian kata yang sudah ditentukan sebelum melakukan read
. Ini guna menghemat dari penggunaan echo
sebelum read
.
Kasus penggunaan tool read
ini diantaranya adalah seperti melakukan konfirmasi Yes/No sebelum menjalankan command tertentu; atau membuat script yang interaktif, dan sebagainya.
Array
Diantara shell-shell yang ada, diantaranya ada yang mendukung array dan ada yang tidak. Bash adalah salah satu yang mendukung array. Jenis array yang bisa dibuat pada shell bash adalah Associative Array dan Indexed Array
Array terindeks (indexed array)
Yang dimaksud dengan indexed array adalah array yang tiap anggotanya memiliki nomor indeks masing-masing yang dimulai dari nol (zero indexed). Cara membuatnya adalah seperti berikut:
|
|
Array asosiatif (associative array)
Associative array, adalah jenis array yang memiliki key dan value. Cara membuat:
|
|
Melihat isi array
Untuk melihat seluruh isi array:
Indexed array
|
|
Untuk mengakses salah satu anggota array:
|
|
Associative array
Hampir sama dengan array terindeks, untuk melihat value tiap anggota array asosiatif:
|
|
Untuk melihat seluruh key dari tiap anggota array:
|
|
Untuk melihat value dari key tertentu:
|
|
Mengakses array menggunakan loop
Mengakses array menggunakan loop memungkinkan untuk melakukan sesuatu terhadap tiap-tiap isi array, baik itu array asosiatif atau terindeks.
|
|
Menambah isi array
Cara menambah isi array adalah seperti berikut:
|
|
Mengubah string menjadi array
|
|
Penjelasan mengenai <<<
ada pada artikel mendatang, insyaAllah.
Menkonversi file yang berisi list menjadi array
Jika ada suatu file yang berisi suatu list (bisa berupa daftar string, dsb) dan hendak dikonversi menjadi array, maka bisa menggunakan mapfile
:
|
|
Kasus penggunaan array
Pada sebuah script, menentukan sekumpulan options dari suatu command tertentu. Misalnya, script tersebut menggunakan rsync
dan ada sekumpulan options dan flag yang sudah ditentukan untuk setiap panggilannya.
|
|
Referensi:
- https://www.geeksforgeeks.org/bash-script-define-bash-variables-and-its-types
- https://www.shell-tips.com/bash/math-arithmetic-calculation
Semoga bermanfaat, insyaAllah.