Bash Script IF Elif Else & Case Perbandingan Multi Kondisi

Berikut ini adalah contoh bash script script perbandingan if elif else multiple or multiple and gabungan antara and dan or membandingkan angka dan string :

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)
  1. if [condition]
    Tanda kurung tradisional yang berjalan diseluruh sistem POSIX
  2. if [[condition]]
    Sistem kurung yang telah di upgrade dari ksh dan zsh. Mendukung perbandingan dengan regular expression
  3. if ((condition))
    Ektensi dari bash ksh dan digunakan untuk operasi aritmatika
  4. 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 :

CHAT via WA di 0817-0334-1186

Sharing is Caring.!

Leave a Reply

  Subscribe  
Notify of