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!