Pendahuluan
 Skrip Bash membantu mengotomatiskan tugas di mesin Anda. if elif else  pernyataan dalam skrip bash memungkinkan pembuatan kasus dan respons bersyarat untuk hasil kode tertentu. if  conditional membantu mengotomatiskan proses pengambilan keputusan selama program.
 Artikel ini menjelaskan apa itu if elif else pernyataan adalah dan menunjukkan sintaks melalui berbagai contoh. 
 
 Prasyarat
- Mesin dengan OS Linux.
- Akses ke baris perintah/terminal.
- Akses ke editor teks seperti Vi/Vim.
Apakah Pernyataan Bash if?
 Dalam pemrograman, if  pernyataan adalah ekspresi bersyarat. Namun, perintah tersebut diuji di if  pernyataan dievaluasi berdasarkan status keluar . Oleh karena itu:
- Jika perintah selesai berhasil , status keluarnya adalah 0 .
- Jika pernyataan memunculkan kesalahan , status keluar adalah angka antara 1 dan 255 .
Angka nol untuk sukses dan nilai bukan nol untuk kegagalan tampaknya berlawanan dengan intuisi. Di sebagian besar bahasa pemrograman lain, nol mewakili salah, dan satu (atau lebih besar) mewakili benar. Namun, dalam skrip bash, konvensi UNIX mengembalikan status keluar alih-alih nilai kebenaran, dan keduanya tidak boleh dikacaukan.
Uji contoh perintah kesalahan (1 lebih besar dari 100) di terminal dengan menjalankan:
test 1 -gt 100Periksa status keluar menggunakan perintah echo:
echo $? 
 
 Tes mengembalikan kode keluar 1  , menunjukkan ekspresi gagal.
Demikian pula, periksa contoh perintah yang berhasil dievaluasi (1000 lebih besar dari 100) di terminal dengan:
test 1000 -gt 100Cetak status keluar untuk mengonfirmasi bahwa perintah berhasil:
echo $? 
 
 Tes mengembalikan kode keluar 0  , menunjukkan perintah selesai tanpa kesalahan.
Contoh Pernyataan Bash if
 Ikuti petunjuk di bawah ini untuk membuat contoh skrip bash menggunakan if  pernyataan.
 1. Buka terminal (CTRL +ALT +B ) dan buat skrip contoh untuk menguji bagaimana bash if  pernyataan berfungsi:
vi test_script.sh2. Dalam skrip, tambahkan baris berikut:
echo -n "Please enter a whole number: "
read VAR
echo Your number is $VAR
if test $VAR -gt 100
then
        echo "It's greater than 100"
fi
echo Bye!
 
 Setiap baris dalam skrip melakukan hal berikut:
- Baris 1-3 memberikan instruksi untuk memasukkan nomor melalui konsol. Angka tersebut dibacakan ke dalam variabel yang disebut VARdan dicetak.
- Baris 4 memulai ifpernyataan dan memeriksa status keluar untuk perintah tepat setelah ($VAR -gt 100).
- Baris 5-6 menandakan dimulainya perintah untuk dieksekusi hanya jika pernyataan pada baris 4 berhasil diselesaikan (dengan status keluar 0), artinya kita memasukkan angka yang lebih besar dari 100.
- Baris 7 menandakan akhir dari ifpernyataan.
- Baris 8 berada di luar pernyataan dan berjalan seperti yang diharapkan, terlepas dari ifhasil.
3. Simpan dan tutup Vim:
:wq4. Selanjutnya, buat file tersebut dapat dieksekusi:
chmod +x test_script.sh5. Terakhir, jalankan skrip dengan:
./test_script.sh 
 Script menampilkan pesan yang berbeda berdasarkan nomor yang dimasukkan. Jalankan skrip beberapa kali dan uji nomor lain untuk mengonfirmasi perilakunya.
Bash jika Sintaks Pernyataan
 Sintaks dasar untuk bash if  pernyataannya adalah:
if <commands>
then
        <commands>
fi
Setiap kata kunci memiliki fungsi tertentu:
- ifmenandakan dimulainya pernyataan. Perintah setelahnya adalah perintah di mana pemeriksaan status keluar berlaku.
- thenmenjalankan perintah hanya jika tinjauan sebelumnya berhasil diselesaikan.
- fimenutup pernyataan if.
 Menyertakan perintah pengujian dalam tanda kurung yang berbeda menghasilkan metode eksekusi yang berbeda untuk if  penyataan. Tabel di bawah ini memberikan deskripsi singkat serta kasus penggunaan untuk setiap jenis braket.
| Sintaks | Apa itu | Kapan harus digunakan | 
|---|---|---|
| if ( <commands> ) | Subkulit dieksekusi dalam subproses. | Ketika perintah mempengaruhi shell atau lingkungan saat ini. Perubahan tidak tetap ada saat subkulit selesai. | 
| if (( <commands> )) | Ekstensi bash. | Gunakan untuk operasi aritmatika dan manipulasi variabel gaya-C. | 
| if [ <commands> ] | POSIX bawaan, alias untuk test <commands>. | Membandingkan angka dan menguji apakah file ada. | 
| if [[ <commands> ]] | Ekstensi bash, versi lanjutan dari tanda kurung siku tunggal. | String cocok dengan pola wildcard. | 
Di bawah ini adalah contoh skrip bash yang menggunakan setiap jenis braket dengan penjelasan yang lebih mendalam.
Sintaks Tanda Kurung Tunggal
 Menggunakan tanda kurung tunggal dalam skrip bash membuat subkulit. Saat digabungkan dengan if  pernyataan, subproses selesai sebelum melanjutkan program. if  menganalisis status keluar dan bertindak sesuai dengan itu.
 Bash if  pernyataan dengan sintaks tanda kurung tunggal terlihat seperti berikut:
if ( <commands> )
then
        <commands>
fi
 Coba contoh di bawah ini untuk melihat bagaimana sub-proses berperilaku bersama dengan if  pernyataan:
1. Buat skrip menggunakan Vim:
vi single_parentheses.sh2. Tambahkan baris kode berikut ke skrip:
outer_variable=Defined
echo Before if:
echo inner_variable = $inner_variable
echo outer_variable = $outer_variable
if (
        echo Inside subshell:
        inner_variable=Defined
        echo inner_variable = $inner_variable
        outer_variable=Changed
        echo outer_variable = $outer_variable
)
then
        echo After then:
        echo inner_variable = $iner_variable
        echo outer_variable = $outer_variable
fi
echo After fi:
echo inner_variable = $inner_variable
echo outer_variable = $outer_variable
 
 Program melakukan hal berikut:
- Baris 1 membuat variabel bernama outer_variabletempat kita menyimpan stringDefined.
- Baris 2-4  cetak variabel ke konsol. Saat ini, outer_variablememiliki string yang tersimpan di dalamnya, sedangkaninner_variablekosong.
- Baris 5 memulai ifpernyataan dan sub-proses, yang dibatasi oleh tanda kurung tunggal.
- Baris 6-11 simpan string di dalam inner_variabledan ubahouter_variableke string yang berbeda. Kedua nilai dicetak ke konsol, dan sub-proses diakhiri dengan kode keluar. Dalam hal ini, sub-proses berakhir dengan sukses dengan kode keluar0.
- Baris 12-16 jalankan setelah sub-proses dan cetak nilai variabel. Namun, nilainya berubah kembali seperti sebelum ifpenyataan. Sub-proses hanya menyimpan nilai secara lokal dan tidak secara global.
- Baris 16-19 jalankan setelah perintah di thenayat. Nilai tetap tidak berubah di luar pernyataan.
3. Simpan skrip dan tutup editor:
:wq4. Jadikan skrip dapat dieksekusi:
chmod +x single_parentheses.sh5. Terakhir, jalankan contoh untuk menguji hasilnya:
./single_parentheses.sh 
 Output mencetak status variabel saat program berjalan.
Sintaks Tanda Kurung Ganda
 Sintaks kurung ganda untuk bash if  pernyataannya adalah:
if (( <commands> ))
then
        <commands>
fi
Konstruksi tanda kurung ganda di bash memungkinkan:
- Evaluasi aritmatika . Mendefinisikan variabel sebagai a=$(( 1+1 ))menghitung persamaan dan menetapkanake 2.
- Manipulasi variabel gaya-C. Misalnya, menambah variabel dengan (( a++ )).
 Saat menggunakan sintaks tanda kurung ganda dalam if  pernyataan, evaluasi berperilaku berbeda. Misalkan ekspresi mengevaluasi ke 0  , lalu if  ujian tidak lulus.
Coba contoh berikut untuk melihat cara kerja tanda kurung ganda:
1. Buat skrip bash di terminal:
vi double_parentheses.sh2. Tambahkan kode berikut ke double_parentheses.sh :
variable=-2
echo Before first if: $variable
if (( variable++ ))
then
        echo Incremented ++ style: $variable
fi
echo After first if: $variable
if (( variable=variable+1 ))
then
        echo Incremented arithmetically $variable
fi
echo After second if: $variable
 
 Setiap nomor baris dalam skrip melakukan hal berikut:
- Baris 1 mendefinisikan variabel dan menyetel nilainya ke -2.
- Baris 3-5 menambah nilai C-style di dalam tanda kurung ganda dan memeriksa nilainya. Jika variabelnya bukan nol, if akan mencetak pesan ke konsol.
- Baris 8-10 menambah variabel satu per satu menggunakan notasi aritmatika biasa dan mencetak pesan jika variabel bukan nol.
3. Simpan skrip dan tutup Vim:
:wq4. Ubah izin skrip menjadi yang dapat dieksekusi:
chmod +x double_parentheses.sh5. Jalankan script untuk melihat hasilnya:
./double_parentheses.sh 
 Sintaks Kurung Tunggal
 Tanda kurung tunggal adalah nama lain dari test  perintah dan utilitas POSIX standar tersedia untuk semua shell. Sintaks dasarnya adalah:
if [ <commands> ]
then
        <commands>
fi
 Bash pertama if  contoh yang disediakan dalam tutorial ini (test_script.sh ) bekerja sama baiknya dengan sintaks alternatif:
echo -n "Please enter a whole number: "
read VAR
echo Your number is $VAR
if [ $VAR -gt 100 ]
then
        echo "It's greater than 100"
fi
echo Bye!
 
 
 Jalankan skrip untuk mengonfirmasi bahwa outputnya setara. Untuk dokumentasi lengkap dan detail tentang penggunaan sintaks braket, jalankan perintah man pada test  utilitas:
man testSintaks Kurung Ganda
 Sintaks kurung ganda di bash if  scripts adalah pilihan terbaik jika portabilitas tidak diperlukan. Kurung ganda lebih unggul daripada kurung tunggal dan mencakup banyak opsi lanjutan. Sintaksnya adalah:
if [[ <commands> ]]
then
        <commands>
fi
 Coba contoh di bawah ini untuk melihat cara kerja pencocokan string karakter pengganti di if  perintah:
1. Buat file skrip shell bernama double_brackets :
vi double_brackets.sh2. Tambahkan kode berikut:
if [[ $USER == k* ]]
then
        echo Hello $USER
fi
echo Bye!
 
 
 3. Script memeriksa apakah huruf awal nama pengguna adalah k  dan mengirim pesan halo jika ya. Simpan dan tutup skrip:
:wq4. Jadikan file tersebut dapat dieksekusi dengan chmod:
chmod +x double_brackets.sh5. Jalankan program dengan:
./double_brackets.sh 
 Jenis Pernyataan Bersyarat Bash Lainnya
 if  pernyataan hanya melakukan satu pemeriksaan bersyarat. Ubah if  dengan jenis persyaratan bash lainnya untuk membuat penilaian yang kompleks.
jika lain Pernyataan
 if else  pernyataan menyediakan satu metode untuk mendefinisikan tindakan yang berbeda berdasarkan output dari kondisi yang diperiksa. Sintaks dasarnya adalah:
if <command>
then
	<commands>
else
	<commands>
fi
 Contoh berikut menunjukkan bagaimana if else  pekerjaan bersyarat:
1. Buat skrip baru menggunakan Vim:
vi if_else.sh2. Masukkan kode berikut ke dalam skrip:
echo -n "Please enter a whole number: "
read VAR
echo Your number is $VAR
if [ $VAR -gt 100 ]
then
        echo "It's greater than 100"
else
        echo "It's less than 100"
fi
echo Bye!
 
 Pernyataan memeriksa output perintah di baris 4 dan mencetak pesan deskriptif berdasarkan hasil:
- Jika angka yang dimasukkan lebih besar dari 100 , program memasuki baris 6 dan mencetak pesan.
- Jika jumlahnya kurang dari 100 , pesan di elseklausa (baris 8 ) mencetak ke konsol.
3. Simpan skrip dan tutup Vim:
:wq4. Jadikan skrip dapat dieksekusi:
chmod +x if_else.sh5. Terakhir, jalankan skrip beberapa kali dan uji berbagai nilai:
./if_else.sh 
 Pernyataan if elif
 elif  klausa yang digabungkan dengan if else  pernyataan menciptakan beberapa pemeriksaan bersyarat. if elif  menciptakan serangkaian pemeriksaan dengan hasil yang berbeda. Sintaksnya adalah:
if <command>
then
        <commands>
elif <command>
then
        <commands>
else
        <commands>
fi
 Untuk membuat skrip menggunakan elif  :
1. Buat file shell bernama elif :
vi elif.sh2. Dalam elif.sh file, tambahkan kode contoh berikut:
echo -n "Please enter a whole number: "
read VAR
echo Your number is $VAR
if [ $VAR -gt 100 ]
then
        echo "It's greater than 100"
elif [ $VAR -lt 100 ]
then
        echo "It's less than 100"
else
        echo "It's exactly 100"
fi
echo Bye!
 
 
 Contoh menambahkan elif  periksa baris 7 untuk melihat apakah angka yang dimasukkan kurang dari 100. Jika pernyataan pada baris 4 dan 7 keduanya gagal, program melompat ke klausa else.
3. Simpan dan tutup file:
:wq4. Buat elif.sh file yang dapat dieksekusi:
chmod +x elif.sh5. Jalankan skrip beberapa kali dan periksa perilaku untuk nomor yang berbeda:
./elif.sh 
 
 Tambahkan beberapa elif  klausa untuk cabang pernyataan untuk pemeriksaan rinci lebih lanjut. Untuk contoh di mana if  dan elif  seri pola tumbuh, opsi yang lebih baik adalah menggunakan case  pernyataan.
Pernyataan if bersarang
 if . bertingkat  pernyataan menambahkan cabang di dalam if  . Secara khusus, ketika sebuah perintah melewati pemeriksaan if pertama, perintah tersebut melewati pemeriksaan baru untuk memfilter hasilnya lebih lanjut. Sintaksnya adalah:
if <commands>
then
        if <commands>
        then
                <commands>
        fi
fi
 Bersarang if biasanya digunakan untuk mencari melalui array multi-dimensi. Namun, cobalah untuk menghindari lebih dari dua atau tiga if  pernyataan untuk mengurangi kompleksitas program. Pikirkan kembali logika kode saat if . bersarang  terus berkembang secara mendalam.