Saturday, June 2, 2018

Bash Script If Expression Cheat Sheet

IF dalam Bash
Bash script mungkin adalah salah satu mantan hal yang terindah dalam hidup saya. Ndak cuma bash sih, ada sh zsh, csh, ksh dan masi banyak sh sh lain yang juga indah. yang saya maksud itu shell atau antar muka baris perintah (kok jadi wagu) yang dalam bahasa inggris biasa di sebut CLI. 

Beberapa teman lebih suka pake zsh, katanya si lebih keren dan gampang, saya belum coba si, mungkin ini salah satu daftar  oprek saya dalam waktu dekat. Saya lebih prefer pake bash karena persebaran bash lebih luas, sehingga kompatibilitas scriptnya tidak perlu dikhawatirkan. 

Di dalam bash script, pasti kita akan sering menggunakan managemen "kondisi". biasanya yang dipake kalo ndak if ya pake case (emang adanya ya cuma dua itu si). penggunaan case mungkin tidak terlalu banyak perintah yang asing dalam pemrograman, tapi if? Daripada ngingetnya mending saya bikin catetannya. berikut adalah ekspresi cek kondisi dengan if pada bash script yang biasanya sering dipakai.

Expression Variabel Angka
expression berikut adalah expression yang kita gunakan saat kita mengkomparasi sebuah nilai dengan tipe angka. Dan setau saya, bash lebih banyak digunakan untuk memproses angka-angka integer atau bilangan bulat desimal. Ya meskipun bisa untuk memproses bilangan yang pecahan, tapi sangat jarang bash script digunakan untuk memproses bilangan pecahan.  

-gt # greater than atau lebih besar 
-ge # greater equal atau lebih besar sama dengan
-eq # equal atau sama dengan 
-lt # less than atau kurang dari
-le # less equal atau kurang dari sama dengan
-lt # lebih kecil
-gt # lebih besar
== # sama dengan

contoh penggunaan :
VARIABLE1=50 VARIABLE2=20
if [[ $VARIABLE1 -gt $VARIABLE2 ]]; then
# action here
fi

Expression Variable String / Karakter
expression dalam if juga dapat memproses huruf, kata atau kalimat.
-z # benar jika variable kosong/tidak memiliki value
-n # benar jika variabel tidak kosong/memiliki value
= # sama dengan
!= # tidak sama dengan, bisa dipakai di string juga
! # negasi dari expression

contoh penggunaan :
if [[ -z "$VARIABLE2" ]]; then
# jika variabel kosong, eksekusi perintah dibawah
fi
contoh negasi :
if [[ ! -z "$VARIABLE2" ]]; then
# jika variabel TIDAK kosong, eksekusi perintah dibawah
fi
contoh komparasi string :
VARIABLE1="kalimat kesatu"
VARIABLE2="kalimat kedua"
if [[ "$VARIABLE1" = "$VARIABLE2" ]]; then
# jika kalimat sama, maka eksekusi perintah dibawah
fi

Expression pada File/Folder
Selain memproses string dan angka, if pada bash script juga dapat menangani file atau folder. berikut adalah expression yang sering digunakan versi saya.

[[ -a $FILE ]] # bernilai benar jika file/folder ada
[[ -e $FILE ]] # sama dengan -a
[[ -d $FILE ]] # bernilai benar jika $FILE adalah sebuah folder
[[ -f $FILE ]] # bernilai benar jika $FILE adalah sebuah file reguler (bukan socket, symbolic link dsb)
[[ -h $FILE ]] # bernilai benar jika $FILE adalah sebuah file yang berupa symbolic link
[[ -r $FILE ]] # bernilai benar jika $FILE adalah sebuah file yang dapat dibaca
[[ -s $FILE ]] # bernilai benar jika $FILE adalah memiliki ukuran file lebih besar dari 0
[[ -w $FILE ]] # bernilai benar jika $FILE adalah sebuah file yang dapat ditulis atau di ubah
[[ -x $FILE ]] # bernilai benar jika $FILE adalah sebuah file yang dapat dieksekusi

contoh penggunaan :
if [[ ! -r $FILE ]]; then
# jika variabel tidak bisa dibaca, munculkan error
fi

Kombinasi Kondisi
if pada bash script juga dapat langsung memproses dua kondisi atau lebih sekaligus. ada beberapa cara, diantaranya sebagai berikut :

if [[ KODISI1 -a KODISI2 ]]; then
# jika kondisi1 dan kondisi2 benar, maka eksekusi perintah dibawah
fi

Semoga bermanfaat. :)

Referensi :

No comments:

Post a Comment