Android

Bash if..else statement

Introduction to Bash Scripting 06 - A Simple "If" Statement

Introduction to Bash Scripting 06 - A Simple "If" Statement

Daftar Isi:

Anonim

Pengambilan keputusan adalah salah satu konsep paling mendasar dari pemrograman komputer. Seperti bahasa pemrograman lainnya, if , if..elif..else , if..elif..else dan bersarang if pernyataan dalam Bash dapat digunakan untuk mengeksekusi kode berdasarkan kondisi tertentu.

Dalam tutorial ini, kami akan memandu Anda melalui dasar-dasar pernyataan Bash if dan menunjukkan kepada Anda bagaimana menggunakannya dalam skrip shell Anda.

if Pernyataan

Bash if kondisional dapat memiliki bentuk yang berbeda. Pernyataan if paling mendasar mengambil bentuk berikut:

if TEST-COMMAND then STATEMENTS fi

Pernyataan if dimulai dengan kata kunci if diikuti oleh ekspresi kondisional dan kata kunci then . Pernyataan berakhir dengan kata kunci fi .

Jika TEST-COMMAND mengevaluasi ke True , STATEMENTS dijalankan. Jika TEST-COMMAND mengembalikan False , tidak ada yang terjadi, STATEMENTS diabaikan.

Secara umum, ini merupakan praktik yang baik untuk selalu membuat indentasi kode Anda dan memisahkan blok kode dengan baris kosong. Kebanyakan orang memilih untuk menggunakan indentasi 4-ruang atau 2-ruang. Lekukan dan baris kosong membuat kode Anda lebih mudah dibaca dan diatur.

Mari kita lihat contoh skrip berikut yang memeriksa apakah angka yang diberikan lebih besar dari 10.

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

Simpan kode dalam file dan jalankan dari baris perintah:

bash test.sh

Script akan meminta Anda untuk memasukkan nomor. Jika misalnya, Anda memasukkan 15, perintah test akan mengevaluasi ke true karena 15 lebih besar dari 10, dan perintah echo di dalam klausa then akan dieksekusi.

The variable is greater than 10.

if..else Pernyataan

Pernyataan Bash if..else mengambil bentuk berikut:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

Jika TEST-COMMAND mengevaluasi ke True , maka STATEMENTS1 akan dieksekusi. Kalau tidak, jika TEST-COMMAND mengembalikan False , STATEMENTS2 akan dieksekusi. Anda hanya dapat memiliki satu klausa else dalam pernyataan.

Mari kita tambahkan klausa else ke skrip contoh sebelumnya:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else Statement

Pernyataan Bash if..elif..else mengambil bentuk berikut:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

Jika TEST-COMMAND1 mengevaluasi ke True , maka STATEMENTS1 akan dieksekusi. Jika TEST-COMMAND2 mengevaluasi ke True , maka TEST-COMMAND2 akan dieksekusi. Jika tidak ada perintah tes yang mengevaluasi ke True , maka STATEMENTS2 dijalankan.

Anda dapat memiliki satu atau lebih klausa elif dalam pernyataan itu. Klausa else adalah opsional.

Kondisi dievaluasi secara berurutan. Setelah suatu kondisi kembali True kondisi yang tersisa tidak dilakukan dan dan kontrol program bergerak ke akhir pernyataan if .

Mari menambahkan klausa elif ke skrip sebelumnya:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

Laporan bersarang if

Bash memungkinkan Anda untuk membuat pernyataan if dalam pernyataan if . Anda dapat menempatkan beberapa pernyataan if di dalam statement if lainnya.

Skrip berikut akan meminta Anda memasukkan tiga angka dan akan mencetak angka terbesar di antara ketiga angka tersebut.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

Berikut adalah bagaimana hasilnya akan terlihat:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. Alih-alih menggunakan pernyataan bersarang if , biasanya lebih efisien menggunakan pernyataan kasus.

Berbagai Kondisi

Operator logika OR dan AND memungkinkan Anda untuk menggunakan beberapa kondisi dalam pernyataan if .

Ini adalah versi lain dari skrip untuk mencetak angka terbesar di antara tiga angka. Dalam versi ini, alih-alih pernyataan bersarang if , kami akan menggunakan operator logika AND ( && ).

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

Operator Uji

Di Bash, perintah test mengambil salah satu bentuk sintaks berikut:

test EXPRESSION]

Untuk meniadakan ekspresi tes, gunakan operator NOT logis ( ! ). Saat membandingkan string selalu gunakan tanda kutip tunggal atau ganda untuk menghindari masalah pemecahan kata atau penggumpalan.

Berikut adalah beberapa operator yang paling sering digunakan:

  • -n VAR - Benar jika panjang VAR lebih besar dari nol. -z VAR - Benar jika VAR kosong. STRING1 = STRING2 - Benar [STRING1 dan STRING2 sama. STRING1 != STRING2 - True STRING1 dan STRING2 tidak sama. INTEGER1 -eq INTEGER2 - True INTEGER1 dan INTEGER2 adalah sama. INTEGER1 -gt INTEGER2 - True INTEGER1 lebih besar dari INTEGER2. INTEGER1 -lt INTEGER2 - True INTEGER1 kurang dari INTEGER2. INTEGER1 -ge INTEGER2 - True INTEGER1 sama atau lebih besar dari INTEGER2. INTEGER1 -le INTEGER2 - True INTEGER1 sama dengan atau kurang dari INTEGER2. -h FILE - Benar jika FILE ada dan merupakan tautan simbolis. -r FILE - Benar jika FILE ada dan dapat dibaca. -w FILE - Benar jika FILE ada dan dapat ditulis. -x FILE - Benar jika FILE ada dan dapat dieksekusi. -d FILE - Benar jika FILE ada dan merupakan direktori. -e FILE - Benar jika FILE ada dan merupakan file, terlepas dari jenisnya (node, direktori, socket, dll.). -f FILE - Benar jika FILE ada dan merupakan file biasa (bukan direktori atau perangkat).

Kesimpulan

Pernyataan if , if..elif..else dan if..elif..else memungkinkan Anda untuk mengontrol alur eksekusi skrip Bash dengan mengevaluasi kondisi yang diberikan.

terminal bash