Pernyataan if-else dalam skrip bash serupa dengan bahasa pengaturcaraan lain; ia adalah kaedah untuk program membuat keputusan.
Dalam if-else
pernyataan, pelaksanaan blok penyataan diputuskan berdasarkan hasil if
keadaan.
Sintaks bagi if-else
pernyataan dalam bash adalah:
if [condition] then
//if block code else // else block code fi
Sekiranya keadaan dinilai menjadi true
, maka if
kod blok dijalankan, dan jika keadaan dinilai menjadi false
maka else
kod blok dilaksanakan.
Kita mesti menyelesaikan if
penyataan dengan fi
kata kunci.
Ungkapan yang digunakan oleh konstruk bersyarat mesti dinilai sama ada true
atau false
. Ungkapan boleh berupa satu rentetan atau pemboleh ubah.
$a -lt $b
atau $a < $b
$a -gt $b
atau $a > $b
$a -le $b
atau $a <= $b
$a -ge $b
atau $a >= $b
$a -eq $b
atau $a == $b
$a -ne $b
atau $a != $b
Ungkapan dalam if
penyataan juga boleh menjadi gabungan logik pelbagai perbandingan.
Pengendali logik adalah:
$a AND $b
atau $a && $b
menilai kepada true
apabila kedua-dua pemboleh ubah atau pernyataan itu benar.$a OR $b
atau $a || $b
menilai kepada true
apabila salah satu pemboleh ubah atau pernyataan itu benar.Sebagai contoh:
#!/bin/bash first_name='John' last_name='Doe' if [[ $first_name = 'John' && $last_name = 'Doe' ]] then echo 'hello John Doe' fi
The if
pernyataan hanyalah pernyataan bersyarat sederhana. Sekiranya keadaan dalam if[]
menilai kepada true
maka if
blok kod dilaksanakan.
Contoh:
#!/bin/bash read -p 'Enter a number: ' mynumber if [ $mynumber -gt 10 ] then
echo 'The number you entered is greater than 10' fi
Nota:Dalam contoh di atas, jika kita memasukkan nombor yang kurang dari 10, maka tidak ada yang dicetak.Apabila hasil dari if
keadaan adalah false
maka kod dalam else
blok dilaksanakan, dengan syarat ada satu.
Sebagai contoh:
#!/bin/bash read -p 'Enter a number: ' mynumber if [ $mynumber -gt 10 ] then
echo 'The number you entered is greater than 10' else
echo 'The number you entered is less than 10' fi
The elif
(jika tidak) digunakan apabila terdapat beberapa if
syarat.
Sebagai contoh:
#!/bin/bash read -p 'Enter your exam grade: ' grade if [ $grade -ge 80 ] then
echo 'You got A' elif [ $grade -ge 70 ] then
echo 'You got B' elif [ $grade -ge 60 ] then
echo 'You got C' else
echo 'Fail' fi
Kita juga boleh bersarang if
penyataan.
Sebagai contoh:
#!/bin/bash read -p 'Enter value of a :' a read -p 'Enter value of b :' b read -p 'Enter value of c :' c if [ $a -gt $b ] then
if [ $a -gt $c ]
then
echo 'a is greatest'
else
echo 'c is greatest'
fi else
if [ $b -gt $c ]
then
echo 'b is greatest'
else echo 'c is greatest'
fi fi