Berikut ini adalah contoh bash script script perbandingan if elif else multiple or multiple and gabungan antara and dan or membandingkan angka dan string :
Contents
Statement dasar
if kondisi then perintah else perintah fi
Contoh example.sh :
#!/bin/bash # Basic if statement if [ $1 -gt 20 ] then echo Angka lebih besar dari 20 elif [ $1 -gt 10 ] then echo Angka lebih besar dari 10 else echo Angka lebih kecil dari 10 fi
Hasil seperti ini
[root@uvcms1 script]# sh example.sh 5 Angka lebih kecil dari 10 [root@uvcms1 script]# sh example.sh 11 Angka lebih besar dari 10 [root@uvcms1 script]# sh example.sh 21 Angka lebih besar dari 20
Operator
Operator | Description |
---|---|
! EXPRESSION | false |
-n STRING | panjang string lebih besar dari 0 |
-z STRING | String kosong (ie it is empty). |
STRING1 = STRING2 | STRING1 sama dengan STRING2 |
STRING1 != STRING2 | STRING1 tidak sama dengan STRING2 |
INTEGER1 -eq INTEGER2 | INTEGER1 sama dengan INTEGER2 |
INTEGER1 -gt INTEGER2 | INTEGER1 lebih besar dari INTEGER2 |
INTEGER1 -lt INTEGER2 | INTEGER1 lebih kecil dari INTEGER2 |
-d FILE | FILE ada dan apakah merupakan direktori |
-e FILE | FILE ada |
-r FILE | FILE ada dan dan memiliki akses membaca. |
-s FILE | FILE ada dan ukurannya lebih besar dari 0 (ie. it is not empty). |
-w FILE | FILE ada dan memiliki akses untuk menulis. |
-x FILE | FILE ada dan memiliki akses untuk menjalankan. |
Hal yang perlu diperhatikan:
= sedikit berbeda dengan -eq.
[001 = 1] akan mengembalikan false. = melakukan perbandingan string (mis. Karakter untuk karakter sama) sedangkan -eq melakukan perbandingan numerik [001 -eq 1] akan mengembalikan true.
Nested Statement / If bersarang
#!/bin/bash # Nested if statements if [ $1 -gt 100 ] then echo Hey that\'s a large number. if (( $1 % 2 == 0 )) then echo And is also an even number. fi fi
if (( $1 % 2 == 0 )) itulah yang dimaksud nested statement
Tanda Kurung
Apa perbedaan tanda kurung
if [condition] if [[condition]] if ((condition)) if (condition)
- if [condition]
Tanda kurung tradisional yang berjalan diseluruh sistem POSIX - if [[condition]]
Sistem kurung yang telah di upgrade dari ksh dan zsh. Mendukung perbandingan dengan regular expression - if ((condition))
Ektensi dari bash ksh dan digunakan untuk operasi aritmatika - if (condition)
Sub kondisi yang biasanya terdapat di dalam kondisi utama [[ (sub_kondisi) && (sub_kondisi) ]]
Penjelasan didapatkan dari sini
If Elif Else
Contoh beberapa kondisi
#!/bin/bash # elif statements if [ $1 -ge 18 ] then echo lebih besar sama dengan 18 elif [ $2 == 'yes' ] then echo Bisa nomor berapa saja else echo cilukba fi
Boolean Operator
Yaitu perintah perbandingan untuk multi kondisi dalam hal ini bisa menggunakan operator boolean.
- and – &&
- or – ||
Contoh :
#!/bin/bash # and example if [ $1 -gt 1 ] && [ $1 -lt 5 ] then echo benar else echo salah fi
Hanya angka 2,3,4 yang mengeluarkan output benar
[root@uvcms1 script]# sh testbol.sh 5 salah [root@uvcms1 script]# sh testbol.sh 1 salah [root@uvcms1 script]# sh testbol.sh 2 benar [root@uvcms1 script]# sh testbol.sh 3 benar [root@uvcms1 script]# sh testbol.sh 4 benar
Contoh lain : tampilkandir.sh
#!/bin/bash # or example var=$1 if [[ $var == 'show' ]] || [[ $var == 'tampil' ]] then ls -alh else ls fi
$1 didapatkan dari entri di command line
hasilnya seperti ini
[root@uvcms1 bashscript]# sh tampilkandir.sh lihat example.sh tampilkandir.sh [root@uvcms1 bashscript]# sh tampilkandir.sh show total 16K drwxr-xr-x 2 root root 4.0K Nov 29 09:31 . drwxr-xr-x 4 root root 4.0K Nov 29 09:30 .. -rw-r--r-- 1 root root 189 Nov 29 09:30 example.sh -rw-r--r-- 1 root root 110 Nov 29 09:32 tampilkandir.sh
Statement Case
Kadang kita ingin membuat kondisi berdasarkan variabel tertentu dan kita bisa menggunakan case.
Sintak dasar :
case <variable> in <pattern 1>) <commands> ;; <pattern 2>) <other commands> ;; esac
Contoh case.sh
#!/bin/bash # case example case $1 in start) echo starting ;; stop) echo stoping ;; restart) echo restarting ;; *) echo don\'t know ;; esac
Hasilnya
[root@uvcms1 bashscript]# sh case.sh $1 don't know [root@uvcms1 bashscript]# sh case.sh start starting [root@uvcms1 bashscript]# sh case.sh stop stoping [root@uvcms1 bashscript]# sh case.sh restart restarting
Contoh kuotadisk.sh
#!/bin/bash # Print a message about disk useage. space_free=$( df -h | awk '{ print $5 }' | sort -n | tail -n 1 | sed 's/%//' ) case $space_free in [1-5]*) echo Plenty of disk space available ;; [6-7]*) echo There could be a problem in the near future ;; 8*) echo Maybe we should look at clearing out old files ;; 9*) echo We could have a serious problem on our hands soon ;; *) echo Something is not quite right here ;; esac
[root@uvcms1 bashscript]# sh kuotadisk.sh Plenty of disk space available
If Multi Kondisi “AND” dan “OR”
Kadang kita membutuhkan operasi multiple && dan multiple ||
Contoh cocok.sh
#!/bin/bash if [[ ($1 == 1 && $2 == 2) || ($1 == 1 && $2 == 3) ]]; then echo cocok. else echo tidak cocok. fi
Hasil
[root@uvcms1 bashscript]# sh cocok.sh 1 2 cocok. [root@uvcms1 bashscript]# sh cocok.sh 1 3 cocok. [root@uvcms1 bashscript]# sh cocok.sh 1 4 tidak cocok.
Selamat belajar bash scripting.
Sumber :
Konsultasi via WA di 0817-0334-1186Posting Terkait :
Pekerja teknis domain, hosting & server. Hubungi saya via WA di 0817-0334-1186 atau messengger di http://m.me/hsuwantoro
Leave a Reply
Want to join the discussion?Feel free to contribute!