GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menggunakan Pernyataan Bersyarat dalam Skrip Bash

Dalam skrip bash, pernyataan bersyarat membantu dalam memeriksa apakah suatu kondisi tertentu benar atau salah. Ketika kondisinya benar, skrip shell menjalankan atau mengeksekusi blok kode yang ditetapkan oleh skrip. Jika tidak, skrip akan melompati eksekusi kode dan melompat ke pernyataan kondisional berikutnya.

Dalam skrip bash, pernyataan kondisional menyertakan jika , jika-lain , if-elif-else dan bersarang jika pernyataan. Dalam panduan ini, kita akan mengeksplorasi bagaimana pernyataan kondisional ini digunakan dalam eksekusi skrip.

Pernyataan if

Dalam bentuknya yang paling sederhana, pernyataan 'if' menggunakan sintaks berikut.

if [[ conditional_statement ]]

then

 command 

fi

Pernyataan if bersyarat dimulai dengan jika kata kunci. Ini diikuti oleh pernyataan kondisional yang kemudian diikuti oleh lalu kata kunci yang mendahului perintah yang akan dieksekusi jika pernyataan kondisional benar.

Jadi, jika pernyataan_kondisi benar, maka perintah dieksekusi. Jika bernilai False, tidak ada yang terjadi dan perintah sepenuhnya diabaikan dan skrip keluar.

Mari kita ambil contoh skrip bash yang memeriksa apakah skor yang diberikan lebih besar dari 80.

$ vim check_score.sh

Salin dan tempel skrip.

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

fi

Perhatikan lekukan dengan cermat. Tetapkan izin eksekusi menggunakan chmod perintah sebagai berikut:

$ chmod +x check_score.sh

Kemudian jalankan skripnya.

$ ./check_score.sh

Jika Anda memasukkan nilai yang lebih besar dari 80, pernyataan kondisional akan berlaku dan pesan gema akan dicetak ke stdout

Namun, jika nilai yang diberikan untuk skor kurang dari 80 – pernyataan bersyarat dievaluasi salah dan tidak ada yang terjadi. Script akan keluar begitu saja.

Pernyataan if-else

Dalam skrip shell sebelumnya, hanya satu perintah yang dieksekusi setelah pernyataan kondisional dievaluasi ke True. Ketika kondisi dievaluasi ke False, tidak ada yang dicetak dan skrip baru saja keluar. jika-lain pernyataan membantu kita untuk menjalankan perintah jika suatu kondisi bernilai salah. lainnya pernyataan kemudian diikuti oleh perintah atau pernyataan jika kondisi mengembalikan False.

if [[ conditional_statement ]]

then

 command 

else

 command

fi

Mari ubah skrip shell sebelumnya dan tambahkan else pernyataan

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

else

 echo "You have failed the exam, please try again"

fi

Di sini, skrip shell mengeksekusi blok kode setelah else pernyataan hanya jika kondisi pertama bernilai salah – yaitu jika skor yang diberikan kurang dari 80.

Pada contoh pertama, skor yang diberikan adalah 90 , yang lebih besar dari 80, dan karenanya pernyataan pertama dalam skrip dieksekusi dan skrip keluar.

Namun, dalam kasus kedua, 70 diberikan, dan karena nilainya kurang dari 80, skrip melewatkan pernyataan pertama karena bernilai false dan melanjutkan untuk mengeksekusi pernyataan kedua setelah else pernyataan.

Pernyataan if-elif-else

Sejauh ini, kami telah memeriksa satu kondisi yang bernilai Benar atau Salah. elif Pernyataan (else -if ) digunakan dimana terdapat beberapa pernyataan kondisional yang memiliki hasil yang berbeda. Jika satu kondisi bernilai False, maka kondisi lainnya akan diperiksa apakah Benar. Berikut sintaks sederhana untuk pernyataan if-elif-else.

if [[ conditional_statement_1 ]]

then

 command_1 

elif [[ conditional_statement_2 ]]

then

 command_2

else

 command_3

fi

Perhatikan script di bawah ini

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -ge 90 ]]

then

 echo "Excellent!"

elif [[ $score -ge 70 ]]

then

 echo "Congratulations! Job well done!"

elif [[ $score -ge 50 ]]

then

 echo "Fairly done. There's more room for improvement!"

else

 echo "Poorly done"

fi

Dalam contoh ini, jika skornya lebih besar dari atau sama dengan 90, itu akan mencetak pesan Luar Biasa! Namun, jika skornya kurang dari 90 tetapi lebih besar atau sama dengan 70, akan dicetak Selamat! Pekerjaan selesai dengan baik! .
Jika skornya kurang dari 70, tetapi lebih besar dari atau sama dengan 50 akan mencetak pesan Cukup selesai. Ada lebih banyak ruang untuk perbaikan!

Dan terakhir, jika skornya kurang dari 50, hasilnya Buruk.

Pernyataan if bertingkat

Pernyataan if bersarang terdiri dari pernyataan if di dalam pernyataan if yang lain. ketika satu kondisi berlaku, skrip melanjutkan untuk memeriksa kondisi berikutnya. Dalam demonstrasi di bawah ini, kita akan mengambil nilai input dari 3 nilai numerik dan memeriksa mana di antara nilai tersebut yang terbesar.

#!/bin/bash

read -p "Please enter the value of j:" j

read -p "Please enter the value of k:" k

read -p "Please enter the value of l:" l

if [ $j -gt $k ]

then

 if [ $j -gt $l ]

 then

 echo "j is greatest"

 else

 echo "l is greatest"

 fi

else

 if [ $k -gt $l ]

 then

 echo "k is greatest"

 else

 echo "l is greatest"

 fi

fi

Ringkasan

Itu adalah ikhtisar tingkat tinggi dari pernyataan bersyarat dalam skrip bash. Seperti yang telah Anda lihat, pernyataan kondisional digunakan untuk menentukan hasil skrip berdasarkan ekspresi kondisional yang ditetapkan. Mudah-mudahan, Anda sekarang memiliki dasar dasar pernyataan bersyarat.


Ubuntu
  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Gunakan Ekstensi .sh Atau .bash Untuk Skrip Bash?

  3. Cara Memisahkan String dalam Skrip Bash

  1. Cara menggunakan perintah riwayat Bash

  2. Cara Menggunakan Kata Sandi Terenkripsi di Linux Bash Shell Script

  3. Bagaimana cara menjalankan skrip bash?

  1. Cara Menggunakan if else Conditionals Statement di Bash Script

  2. Cara Menggunakan Perintah Uptime Di Ubuntu Linux

  3. Konfirmasi Otomatis Saat Menjalankan Skrip Bash?