Perbedaan :- dan := pada Bash Scripting

Sebagaimana yang kita tahu bahwa Bash merupakan jembatan dimana kita bisa memberikan perintah terhadap sistem operasi. Jika kita seorang Sysadmin, NOC atau seorang DevOps maka wajar saja jika orang bertanya, "tau Bash ngga?" dan pasti dijawab, "udah makanan sehari-hari". Bash ini cukup membantu jika kita sedang berurusan dengan otomatisasi pada sistem operasi, atau instruksi sistematis.

Seiring waktu Bash sudah menjadi lebih dari console command, bahkan sudah menjadi scripting language. Beberapa aspek yang dapat dilihat Bash sebagai scripting language adalah memiliki variabel, struktur kontrol dan percabangan. 

Saat melakukan deklarasi atau inisialisasi variabel adakalanya kita membutuhkan default value. Default value ini sering digunakan saat user tidak menginputkan nilai atau nilai tersebut memang harus ada sebelumnya walaupun sifanya inputan (mandatori). Anda dapat menggunakan notasi :- (titik dua, minus) atau := (titik dua, sama dengan). Lantas apa perbedaannya?

Perbedaan :- dan :=


Dikutip dari Shell Parameter Expansion dan What's the difference between :- and := in Bash parameter substitution? keduanya memiliki kesamaan yaitu memberikan nilai default. Perbedaan mendasar adalah, jika kita menggunakan :- , apabila parameter (variable) dalam kondisi null atau unset maka nilai dari variable tersebut akan digantikan dengan nilai default. Sedangkan bila kita menggunakan :=, apabila parameter (variable) dalam kondisi null atau unset maka nilai dari variable tersebut akan digantikan dengan nilai default sekaligus menginisialisasi variable tersebut dengan nilai default. Lebih jelasnya, perhatikan contoh berikut:

Sebagaimana yang dapat dilihat pada contoh diatas. Bila kita melakukan echo pada variable $var maka output dari variable tersebut adalah kosong (null) karena variable $var belum pernah di deklarasikan. Mari kita menggunakan operator subtitusi :- . Pada baris selanjutnya kita melakukan echo pada variable $var namun kita menambahkan subtitusi dengan nilai default. Karena $var belum memiliki nilai maka output dari perintah tersebut adalah nilai default. Namun ketika kita meng-echo kembali variable $var maka variable $var tetap bernilai null.


Pada contoh diatas, bila kita melakukan echo pada variable $var maka output dari variable tersebut adalah kosong (null) karena variable $var belum pernah di deklarasikan. Mari kita menggunakan operator subtitusi := . Pada baris selanjutnya kita melakukan echo pada variable $var namun kita menambahkan subtitusi dengan nilai default. Karena $var belum memiliki nilai maka output dari perintah tersebut adalah nilai default. Berbeda dengan :- , ketika kita meng-echo kembali variable $var maka variable $var tetap bernilai memiliki nilai yang sama dengan nilai subtitusi. Bisa disimpulkan bahwa := juga mengisi nilai dari variable $var.

Itu saja untuk artikel kali ini.

Cheers!

Tidak ada komentar:

Posting Komentar

Terima kasih telah berkunjung.

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...