GNU/Linux >> Belajar Linux >  >> Linux

Pernyataan Bash If-Else – Semua yang Perlu Anda Ketahui Tentang

Artikel ini membahas dasar-dasar skrip shell Bash dan menjelaskan konstruksi logis yang paling banyak digunakan termasuk jika tunggal pernyataan, jika-lain pernyataan, dan elif penyataan. Selain itu, kami akan membahas cara yang benar untuk membandingkan string dan angka. Tingkatkan pengalaman shell Linux Anda dalam 5 menit!

Kapan pun Anda seorang administrator sistem berpengalaman atau pengguna Linux pemula, ada baiknya mengetahui dasar-dasar skrip shell. Keterampilan ini memberi Anda kemampuan untuk mengotomatiskan tugas yang dapat diulang dalam satu atau beberapa server. Biasanya, tugas tersebut mencakup penginstalan perangkat lunak dan konfigurasi layanan sistem apa pun.

Pernyataan if

jika pernyataan berfungsi sebagai inti mendasar untuk semua bahasa pemrograman. Pernyataan ini membantu menerapkan logika pengambilan keputusan dalam program atau skrip Anda. Itulah mengapa penting untuk memahami cara menggunakan berbagai jika pernyataan.

Berikut sintaks dasarnya:

if [ condition ]
then
  COMMANDS
fi

Dimana:

  • kondisi – adalah operator logika dari jika pernyataan.
  • PERINTAH – perintah, yang dijalankan saat kondisinya true .
  • jika, maka, fi – adalah kata kunci sintaks.

Berikut daftar operator kondisi pengujian yang paling sering digunakan:

Operator Deskripsi
! EKSPRESI EKSPRESI salah.
-n STRING Panjang STRING lebih besar dari nol.Teks
-z STRING Panjang STRING adalah nol (STRING kosong)
STRING1 =STRING2 STRING1 sama dengan STRING2
STRING1 !=STRING2 STRING1 tidak sama dengan STRING2
INTEGER1 -eq INTEGER2 INTEGER1 secara numerik sama dengan INTEGER2
INTEGER1 -gt INTEGER2 INTEGER1 secara numerik lebih besar dari INTEGER2
INTEGER1 -lt INTEGER2 INTEGER1 secara numerik kurang dari INTEGER2
-e FILE FILE ada
-d FILE FILE ada dan itu adalah direktori
-s FILE FILE ada dan ukurannya lebih besar dari nol (FILE tidak kosong.
-w FILE FILE ada dan izin menulis diberikan.
-x FILE FILE ada dan izin eksekusi diberikan.
-r FILE FILE ada dan izin baca diberikan.

Hal yang paling menarik adalah selama eksekusi skrip Bash, semua yang ada di [ ] lolos ke pengujian utilitas, yang mengembalikan true atau salah . Jadi, jika Anda lupa sintaks operator, gunakan saja halaman manualnya:

man test

Mari kita lihat jika yang paling sederhana contoh pernyataan:

#!/bin/bash
var=2
if [ $var -eq 2 ]
then
  echo "var equals 2"
fi

Hasil yang diharapkan:

var equals 2

Pada contoh di atas, kita menetapkan variabel var nilai ke 2 , lalu kami menguji apakah var nilai sama dengan (-eq2 dan mencetak pesan tersebut.

Dalam kehidupan nyata, kami biasanya menggunakan jika pernyataan dalam kombinasi dengan konstruksi perulangan Bash (untuk-loop, while-loop, hingga-loop). Berikut ini contoh penggunaan jika pernyataan dengan untuk -loop:

#!/bin/bash
for var in 1 2 3 4 5
do
  if [ $var -eq 3 ]
  then
    echo "Value 3 found"
    break
  fi
  echo var=$var
done

Hasil yang diharapkan:

var=1
var=2
Value 3 found

Dalam contoh ini, kita menelusuri daftar angka dari 1 ke 5 di untuk -loop dan mencetak nilai variabel, yang baru saja kita proses. Saat nilai 3 ditemukan, kami menghentikan eksekusi skrip.

Selain contoh di atas, Anda dapat menggunakan hasil perhitungan matematis dalam jika pernyataan:

#!/bin/bash
for var in {1..10}
do
  if (( $var % 2 == 0 ))
  then
    echo "$var is even number"
  fi
done

Pada contoh di atas, kami memeriksa bilangan genap dalam rentang antara 1 dan 10 .

Hasil yang diharapkan:

2 is even number
4 is even number
6 is even number
8 is even number
10 is even number

Sekarang, Anda dapat memeriksa keluaran perintah Bash atau hasil eksekusi. Mari coba periksa apakah pengguna ada di /etc/passwd berkas.

#!/bin/bash
user='root'
check_result=$( grep -ic "^$user" /etc/passwd )
if [ $check_result -eq 1 ]
then
  echo "$user user found"
fi

Pada contoh di atas kami menggunakan grep perintah untuk menelusuri /etc/passwd berkas:

grep -ic "^$user" /etc/passwd

Dimana:

  • -i – pencarian peka huruf besar/kecil.
  • -c – mengembalikan jumlah baris yang ditemukan (0 – tidak ada yang ditemukan; 1 atau lebih ketika sesuatu ditemukan).
  • “^$pengguna” – cari string yang dimulai (^ ) dari nilai $user variabel.

Segala sesuatu yang lain dalam contoh harus jelas.

Hasil yang diharapkan:

root user found

Selanjutnya, mari kita periksa bahwa /etc/passwd file ada:

#!/bin/bash
file='/etc/passwd'
if [ -s $file ]
then
  echo "$file file found"
fi

Hasil yang diharapkan:

/etc/passwd file found

Pernyataan if-else

Setelah terbiasa dengan jika dasar pernyataan, mari kita lihat cara menggunakan Bash if-else pernyataan.

Berikut sintaks umumnya:

if [ condition ]
then
  TRUE_COMMANDS
else
  FALSE_COMMANDS
fi

Dimana:

  • kondisi – adalah operator logika dari jika pernyataan.
  • TRUE_COMMANDS – perintah, yang dijalankan jika kondisinya benar.
  • FALSE_COMMANDS – perintah, yang dijalankan jika kondisinya salah.
  • jika, maka, jika tidak, fi – adalah kata kunci sintaks.

Untuk mendemonstrasikan cara kerjanya, mari kita ubah satu contoh, di mana kita mendeteksi angka genap. Sekarang, mari kita cetak mana bilangan genap dan ganjil:

#!/bin/bash
for var in {1..10}
do
  if (( $var % 2 == 0 ))
  then
    echo "$var is even number"
  else
    echo "$var is odd number"
  fi
done

Inilah hasil yang diharapkan:

1 is odd number
2 is even number
3 is odd number
4 is even number
5 is odd number
6 is even number
7 is odd number
8 is even number
9 is odd number
10 is even number

Pernyataan Elif

Sekarang, bagaimana jika kita perlu memeriksa beberapa kondisi berbeda selama eksekusi skrip kita? Itu juga dimungkinkan menggunakan pernyataan elif, yang merupakan jalan pintas dari “else if ”.

Begini tampilan sintaksnya:

if [ condition_1 ]
then
  CONDITION_1_COMMANDS
elif [ condition_2 ]
then
  CONDITION_2_COMMANDS
else
  ALL_OTHER_COMMANDS
fi

Dimana:

  • kondisi_1 – adalah kondisi logis untuk mengeksekusi CONDITION_1_COMMANDS .
  • CONDITION_1_COMMANDS – perintah, yang dijalankan jika kondisi_1 apakah benar .
  • CONDITION_2_COMMANDS – perintah, yang dijalankan jika kondisi_2 apakah benar .
  • SEMUA_OTHER_PERINTAH – perintah, yang dijalankan saat condition_1 dan kondisi_2 adalah salah .
  • jika, maka, elif, yang lain, fi – adalah kata kunci sintaks.

Mari kita lihat contoh berikut:

#/bin/bash

time=8
if [ $time -lt 10 ]
then
  echo "Good morning"
elif [ $time -lt 20 ]
then
  echo "Good day"
else
  echo "Good evening"
fi

Dalam contoh ini, kami menyiapkan waktu variabel ke 8 AM dan mencetak pesan berdasarkan nilai waktu.

Hasil yang diharapkan:

Good morning

Pernyataan if bersarang

Sekarang, ketika kita terbiasa dengan dasar-dasarnya, kita dapat menyelesaikan topik ini dengan mempelajari cara menyusun pernyataan if.

Ini contohnya:

#/bin/bash

value=5
if [ $value -lt 10 ]
then
  if [ $value -eq 5 ]
  then
    echo "Value equals 5"
  else
    echo "Value not equals 5"
  fi
else
  echo "value is greater than 10"
fi

Inilah hasil yang diharapkan:

Value equals 5

Operator Boolean

Mungkin berguna untuk memeriksa beberapa ketentuan dalam satu jika penyataan. Anda dapat melakukannya dengan menggunakan operator boolean berikut:

  • && – logika DAN.
  • || – logis ATAU.

Berikut ini contoh singkatnya:

#!/bin/bash
username="andrei"
birthday="12/16"
today=$( date +"%m/%d")
if [ $USER = $username ] && [ $today = $birthday ]
then
  echo "Happy birthday\!"
fi

Dalam contoh sederhana ini, kami memeriksa dua kondisi agar benar:

  • Nama pengguna dari pengguna yang masuk harus sama dengan andrei.
  • Tanggal hari ini seharusnya 16 Desember.

Jika kedua kondisi benar, kami mencetak “‘Selamat ulang tahun!”

Pernyataan kasus

Dalam beberapa situasi Anda mungkin perlu memiliki lebih dari 3 pernyataan elif untuk memeriksa skrip Anda. Dalam hal ini menggunakan pernyataan elif menjadi rumit. Bash memberi Anda cara yang lebih baik untuk menangani situasi seperti itu dengan menggunakan kasus pernyataan.

Berikut sintaksnya:

case VARIABLE in
  VALUE_1)
    COMMANDS_FOR_VALUE_1
    ;;
  VALUE_2)
    COMMANDS_FOR_VALUE_2
    ;;
  *)
    DEFAULT_COMMANDS
    ;;
esac

Dimana:

  • VARIABEL – variabel yang nilainya akan dibandingkan dengan VALUE_1 atau VALUE_2 .
  • COMMANDS_FOR_VALUE_1 – perintah untuk dijalankan saat VARIABEL nilai sama dengan VALUE_1 .
  • COMMANDS_FOR_VALUE_2 – perintah untuk dijalankan saat VARIABEL nilai sama dengan VALUE_2 .
  • DEFAULT_COMMANDS – perintah untuk dijalankan saat VARIABEL nilainya tidak sama dengan salah satu kondisi teratas.
  • kasusdiesac – kata kunci sintaks.

Inilah pola yang sangat umum untuk memproses input ke skrip dan memulai, menghentikan, atau memulai ulang layanan berdasarkan pengguna masukan:

#!/bin/bash

case $1 in
  start)
    echo "Starting the service"
    ;;
  stop)
    echo "Stopping the service"
    ;;
  restart)
    echo "Restarting the service"
    ;;
  *)
    echo "Unknown action"
    ;;
esac

Dalam contoh ini, kami memeriksa nilai $1 khusus variabel bash. Ini berisi argumen pertama, disediakan untuk skrip. Misalnya, jika Anda menyimpan contoh di atas dalam file service.sh dan jalankan seperti ini:

bash service.sh start

$1 akan berisi kata "mulai" sebagai nilainya.

Sisanya ditangani oleh logika pernyataan kasus.

Ringkasan

Dalam artikel ini kami membahas dasar-dasar skrip shell Bash dan menjelaskan konstruksi logis yang paling banyak digunakan termasuk jika tunggal pernyataan, jika-lain pernyataan, dan elif pernyataan.

Kami harap Anda menemukan artikel ini bermanfaat. Jika ya, tolong, tolong, bantu kami menyebarkannya ke seluruh dunia!


Linux
  1. Semua yang perlu Anda ketahui tentang MySQL

  2. Semua yang perlu Anda ketahui tentang MySQL

  3. Apa Itu Hosting VPS? Yang Perlu Anda Ketahui Tentang Server Pribadi Virtual

  1. Cara Menggunakan Perintah Waktu Linux:Yang Perlu Anda Ketahui

  2. Semua yang Perlu Anda Ketahui Tentang Ubuntu 13.04

  3. Apa yang perlu diketahui sysadmin tentang menggunakan Bash

  1. Kompresi File Linux:Semua yang Perlu Anda Ketahui

  2. Izin File Linux:Semua yang Perlu Anda Ketahui

  3. Apa yang perlu Anda ketahui tentang IPv6