GNU/Linux >> Belajar Linux >  >> Linux

Sintaks Bash If Else Dengan Contoh

Saat bekerja dengan skrip Bash dan shell, Anda mungkin perlu menggunakan kondisi dalam skrip Anda.

Dalam pemrograman, kondisi sangat penting :mereka digunakan untuk menegaskan apakah beberapa kondisi benar atau tidak.

Dalam tutorial ini, kita akan fokus pada salah satu pernyataan kondisional bahasa Bash :pernyataan Bash if else.

Kita akan melihat bagaimana Anda dapat menggunakan pernyataan ini untuk mengeksekusi skrip Anda secara kondisional.

Anda juga akan mempelajari bagaimana Anda dapat menggunakan Bash if else yang disarangkan pernyataan untuk membuat kode yang lebih kompleks.

Pernyataan Bash Jika Lain

Untuk mengeksekusi pernyataan Bash “jika lain”, Anda harus menggunakan empat kata kunci yang berbeda :if, then, else dan fi :

  • jika :mewakili kondisi yang ingin Anda periksa;
  • lalu :jika kondisi sebelumnya benar, maka jalankan perintah tertentu;
  • lainnya :jika kondisi sebelumnya salah, maka jalankan perintah lain;
  • fi :menutup pernyataan “jika, maka, yang lain”.

Saat menggunakan pernyataan “jika lain”, Anda harus menyertakan kondisi dalam tanda kurung siku tunggal atau ganda.

if [[ condition ]]
then
  <execute command>
else
  <execute another command>
fi

Perhatikan bahwa pernyataan “ELSE” adalah opsional , jika Anda menghilangkannya, tidak ada yang akan dieksekusi jika kondisi bernilai false.

Catatan :Anda perlu memisahkan kondisi dari tanda kurung siku dengan spasi, jika tidak, Anda mungkin mendapatkan kesalahan sintaks.

Jika Lain Contoh

Sekarang Anda tahu lebih banyak tentang Bash "jika lain" pernyataan, mari kita lihat bagaimana Anda dapat menggunakannya dalam contoh dunia nyata.

Di bagian ini, kita akan membuat skrip yang mencetak pesan jika dijalankan oleh pengguna root.

Jika skrip tidak dijalankan oleh pengguna root, skrip akan menulis pesan khusus lainnya.

Untuk memeriksa apakah skrip dijalankan oleh root, kita perlu melihat apakah UID pemanggil adalah nol.

#!/bin/bash

# If the user is root, its UID is zero.

if [ $UID  -eq  0 ]
then
  echo "You are root!"
else
  echo "You are not root."
fi

Seperti yang dinyatakan sebelumnya, "lain ” pernyataan tidak wajib.

Jika kita menghilangkan skrip yang dibuat sebelumnya, kita masih dapat mengeksekusi pernyataan “then” pertama.

#!/bin/bash

# If the user is root, its UID is zero.

if [ $UID  -eq  0 ]
then
  echo "You are root!"
fi

Sekarang, bagaimana jika Anda ingin menambahkan pernyataan “jika” tambahan ke skrip Anda?

Pernyataan Bash Jika Elif

The “Jika Elif ” digunakan di Bash untuk menambahkan pernyataan “jika” tambahan ke skrip Anda.

Untuk mengeksekusi pernyataan Bash “if elif”, Anda harus menggunakan lima kata kunci yang berbeda :if, then, elif, else dan fi :

  • jika :mewakili kondisi yang ingin Anda periksa;
  • lalu :jika kondisi sebelumnya benar, maka jalankan perintah tertentu;
  • elif :digunakan untuk menambahkan kondisi tambahan pada pernyataan Anda;
  • lainnya :jika kondisi sebelumnya salah, jalankan perintah lain;
  • fi :menutup pernyataan “if, elif, then”.
if [[ condition ]]
then
  <execute command>
elif [[ condition ]]
then
  <execute another command>
else
  <execute default command>
fi

Sekali lagi, pernyataan “ELSE” adalah opsional, jadi Anda mungkin ingin menghilangkannya jika Anda tidak memerlukan pernyataan default.

if [[ condition ]]
then
  <execute command>
elif [[ condition ]]
then
  <execute another command>
fi

Jika Contoh Elif

Di bagian sebelumnya, kami menggunakan "jika lain ” untuk memeriksa apakah pengguna adalah root atau tidak.

Di bagian ini, kita akan memeriksa apakah pengguna adalah root atau apakah pengguna memiliki UID 1002.

Jika tidak demikian, kita akan keluar dari skrip dan mengembalikan prompt ke pengguna.

if [[ $UID  -eq  0 ]]
then
  echo "You are root!"
elif [[ $UID  -eq 1002 ]]
then
  echo "You are user, welcome!"
else
  echo "You are not welcome here."
  exit 1;
fi

Selamat, sekarang Anda tahu cara menggunakan "jika elif ” pernyataan!

Sekarang bagaimana jika Anda ingin memiliki beberapa kondisi di bawah pernyataan “jika” yang sama?

Beberapa Kondisi di If Else

Agar beberapa ketentuan ditulis dalam pernyataan "jika lain" yang sama, Anda harus memisahkan ketentuan Anda dengan operator "DAN" atau operator "ATAU".

# AND operator used in if else.

if [[ <condition_1> && <condition_2> ]];
then
   <execute command>
fi

# OR operator used in if else.
if [[ <condition_1> || <condition_2> ]];
then
   <execute_command>
else
   <execute_another_command>
fi

Misalnya, jika Anda ingin menulis skrip yang memeriksa bahwa Anda adalah pengguna root dan bahwa Anda memberikan parameter yang benar, Anda akan menulis :

#!/bin/bash
 
# If the user is root and the first parameter provided is 0.
if [[ $UID -eq 0 && $1 -eq 0 ]];
then
    echo "You provided the correct parameters"
else
    echo "Wrong parameters, try again"
fi

Pernyataan Bersarang Jika Lain

Dalam beberapa kasus, Anda ingin menerapkan kondisi bersarang agar kondisi diperiksa di bawah kondisi awal.

Untuk memiliki pernyataan “jika lain” yang bersarang, Anda cukup menyertakan pernyataan “jika” dalam pernyataan “jika” yang lain dan menutup pernyataan bertingkat Anda sebelum pernyataan terlampir.

if [[ condition ]]
then  
  if [[ other condition ]]
  then
    <execute command>
  else
    <execute another command>
  fi
fi

Catatan :pastikan untuk memiliki pernyataan “fi” penutup untuk setiap pernyataan “jika” yang Anda buka. Satu "fi" saja tidak cukup untuk beberapa pernyataan "jika".

Contoh Pernyataan Bertingkat

Sebagai contoh, katakanlah Anda ingin memverifikasi bahwa pengguna adalah root sebelum memverifikasi bahwa argumen pertama yang diberikan adalah nol.

Untuk mengatasinya, Anda akan menulis pernyataan “jika, maka, yang lain” dengan cara berikut :

#!/bin/bash

if [[ $UID -eq 0 ]]
then  
  if [[ $1 -eq 0 ]]
  then
    echo "You are allowed to execute this script."
  else
    echo "You should have provided 0 as the first argument."
  fi
fi

Tes Bash

Seperti yang mungkin Anda perhatikan, di bagian sebelumnya, kami menggunakan operator “-eq” untuk membandingkan nilai variabel dengan angka.

Kami melakukan pemeriksaan kesetaraan sederhana, tetapi bagaimana jika Anda ingin melakukan pemeriksaan ketidaksetaraan?

Bagaimana jika Anda ingin memeriksa apakah suatu nilai lebih besar dari angka tertentu misalnya?

Untuk melakukan ini, Anda memerlukan tes Bash .

Tes Bash adalah seperangkat operator yang dapat Anda gunakan dalam pernyataan kondisional Anda untuk membandingkan nilai bersama-sama.

Tes bash dapat didaftar dengan menjalankan perintah “help test”.

$ help test

Saat menulis tes Bash, pada dasarnya Anda memiliki tiga opsi:

  • Tulis ketentuan pada file dan direktori :jika ada, jika berupa file karakter, file perangkat, dan sebagainya;
  • Tulis ketentuan pada angka :jika mereka sama satu sama lain, jika yang satu lebih besar dari yang lain;
  • Tulis ketentuan pada string :jika variabel string disetel atau jika dua string sama satu sama lain.

Kondisi File Bash

Kondisi file bash digunakan untuk memeriksa apakah suatu file ada atau tidak, apakah dapat dibaca, dimodifikasi, atau dieksekusi.

Tes file Bash dijelaskan dalam tabel di bawah ini :

Operator Deskripsi
-e Memeriksa apakah file ada atau tidak
-d Memeriksa apakah file adalah direktori
-b Memeriksa apakah file adalah perangkat blok
-c Memeriksa apakah file adalah perangkat karakter
f1 -nt f2 Jika file f1 lebih baru dari file f2
f1 -ot f2 Jika file f1 lebih tua dari file f2
-r File dapat dibaca (izin baca)
-w File dapat dimodifikasi (izin menulis)
-x File dapat dieksekusi (izin eksekusi)

Misalnya, untuk memeriksa apakah suatu file adalah direktori, Anda akan menulis skrip berikut

#!/bin/bash

# Checking the first argument provided
if [[ -d $1 ]]
then  
  echo "This is a directory"
else
  echo "Not a directory"
fi

Kondisi Nomor Bash

Kondisi angka bash digunakan untuk membandingkan dua angka :jika keduanya sama, jika satu lebih besar dari yang lain atau lebih rendah dari yang lain.

Berikut adalah tabel kondisi nomor Bash yang paling sering digunakan :

Operator Deskripsi
num1 -eq nomor2 Periksa apakah angkanya sama
num1 -ne nomor2 Periksa apakah angkanya tidak sama
num1 -lt nomor2 Memeriksa apakah angka1 lebih rendah dari angka2
num1 -le nomor2 Lebih rendah atau sama dengan angka2
num1 -gt nomor2 Lebih besar dari angka2
num1 -ge nomor2 Lebih besar atau sama dengan angka2

Misalnya, untuk memeriksa apakah suatu bilangan tidak sama dengan nol, tuliskan :

#!/bin/bash

# Checking the first argument provided
if [[ $1 -eq 0 ]]
then  
  echo "You provided zero as the first argument."
else
  echo "You should provide zero."
fi

Kondisi String Bash

Kondisi string bash digunakan untuk memeriksa apakah dua string sama atau jika string kosong.

Berikut adalah tabel kondisi string Bash utama :

Operator Deskripsi
str1 = str2 Memeriksa apakah string sama atau tidak
str1 != str2 Memeriksa apakah string berbeda
-z str1 Memeriksa apakah str1 kosong
-n str1 Memeriksa apakah str1 tidak kosong

Misalnya, untuk memeriksa apakah pengguna memberikan nilai pada skrip Anda, Anda akan menulis :

#!/bin/bash

# Checking the first argument provided
if [[ -n $1 ]]
then  
  echo "You provided a value"
else
  echo "You should provide something"
fi

Kesimpulan

Dalam tutorial hari ini, Anda telah mempelajari tentang pernyataan Bash “Jika Lain”.

Anda melihat, dengan contoh, bahwa Anda dapat membuat pernyataan yang lebih kompleks :menggunakan pernyataan elif dan bersarang.

Akhirnya, Anda telah mengetahui tentang tes Bash, apa itu dan bagaimana mereka digunakan untuk memeriksa kondisi dalam skrip.

Jika Anda tertarik dengan Administrasi Sistem Linux, kami memiliki bagian lengkap yang didedikasikan untuk itu di situs web, jadi pastikan untuk memeriksanya!


Linux
  1. Bash Array Dengan Contoh

  2. Pernyataan Bash If-Else Dengan Contoh

  3. 4 Contoh Pernyataan Bash If ( If then fi, If then else fi, If elif else fi, Nested if )

  1. 4 Contoh Pernyataan Awk If ( if, if else, if else if, :? )

  2. 5 Contoh Pernyataan Kasus Bash

  3. Bash/sh pernyataan 'jika lain'

  1. Bash if elif else Pernyataan:Tutorial Komprehensif

  2. Cara Menulis Skrip Bash dengan Contoh

  3. '&&' vs. '&' dengan perintah 'test' di Bash