Android

Bash if..else statement

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

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

Isi kandungan:

Anonim

Pengambilan keputusan adalah salah satu konsep yang paling asas dalam pengaturcaraan komputer. Seperti dalam bahasa pengaturcaraan yang lain, if , if..else , if..elif..else dan bersarang if penyataan dalam Bash boleh digunakan untuk melaksanakan kod berdasarkan keadaan tertentu.

Dalam tutorial ini, kami akan membimbing anda melalui asas-asas Bash if pernyataan dan menunjukkan kepada anda cara menggunakannya dalam skrip shell anda.

if Penyata

Bash if syarat boleh mempunyai bentuk yang berbeza. Pernyataan yang paling mendasar if mengambil bentuk berikut:

if TEST-COMMAND then STATEMENTS fi

Kenyataan if bermula dengan kata kunci if diikuti oleh ungkapan bersyarat dan kata kunci itu. Kenyataan itu berakhir dengan kata kunci fi .

Sekiranya TEST-COMMAND menilai dengan True , STATEMENTS akan dilaksanakan. Sekiranya TEST-COMMAND mengembalikan False , tiada apa yang berlaku, STATEMENTS diabaikan.

Umumnya, amalan yang baik selalu untuk indent kod anda dan blok kod berasingan dengan garis kosong. Kebanyakan orang memilih menggunakan lekapan ruang 4 atau ruang 2-ruang. Galakan dan garisan kosong menjadikan kod anda lebih mudah dibaca dan teratur.

Lihat skrip contoh berikut yang memeriksa sama ada nombor yang diberi lebih besar daripada 10.

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

Simpan kod dalam fail dan jalankannya dari baris arahan:

bash test.sh

Skrip akan meminta anda memasukkan nombor. Jika sebagai contoh, anda memasukkan 15, arahan test akan dinilai untuk true kerana 15 adalah lebih besar daripada 10, dan arahan echo di dalam klausa itu akan dilaksanakan.

The variable is greater than 10.

if..else Penyata

Kenyataan Bash if..else mengambil bentuk berikut:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

Sekiranya TEST-COMMAND menilai dengan True , STATEMENTS1 akan dilaksanakan. Jika tidak, jika TEST-COMMAND mengembalikan False , STATEMENTS2 akan dilaksanakan. Anda boleh mempunyai satu else klausa dalam pernyataan itu.

Mari tambahkan klausa else kepada skrip contoh terdahulu:

#!/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

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

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

Sekiranya TEST-COMMAND1 menilai kepada True , TEST-COMMAND1 akan dilaksanakan. Sekiranya TEST-COMMAND2 menilai dengan True , TEST-COMMAND2 akan dilaksanakan. Jika tiada arahan ujian dinilai kepada True , STATEMENTS2 dilaksanakan.

Anda boleh mempunyai satu atau lebih klausa elif dalam kenyataan itu. Klausa else adalah pilihan.

Keadaan ini dinilai secara berurutan. Sebaik sahaja keadaan kembali True keadaan yang masih belum dilaksanakan dan dan kawalan program bergerak ke akhir if pernyataan.

Mari tambahkan klausa elif ke skrip terdahulu:

#!/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

Bersarang if Pernyataan

Bash membolehkan anda sarang if pernyataan dalam if pernyataan. Anda boleh membuat pelbagai if pernyataan dalam kenyataan lain if .

Skrip berikut akan meminta anda memasukkan tiga nombor dan akan mencetak nombor terbesar di antara tiga nombor.

#!/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 output akan kelihatan seperti:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. Daripada menggunakan bersarang if pernyataan, biasanya lebih berkesan menggunakan pernyataan kes.

Syarat Pelbagai

OR dan operator logik membolehkan anda menggunakan pelbagai syarat dalam if pernyataan.

Berikut adalah versi skrip yang lain untuk mencetak nombor terbesar di antara tiga nombor. Dalam versi ini, bukannya bersarang if kenyataan, kami akan menggunakan pengendali logikal 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

Pengendali Ujian

Di Bash, arahan test mengambil salah satu daripada bentuk sintaks berikut:

test EXPRESSION]

Untuk menafikan ungkapan ujian menggunakan pengendali NOT ( ! ) Logis. Apabila membandingkan tali selalu menggunakan sebut harga tunggal atau berganda untuk mengelakkan sebarang masalah pemisahan atau masalah penggiliran.

Di bawah adalah beberapa pengendali yang paling biasa digunakan:

  • -n VAR - Benar jika panjang VAR lebih besar daripada sifar. -z VAR - Benar jika VAR kosong. STRING1 = STRING2 - Benar [STRING1 dan STRING2 adalah sama. STRING1 != STRING2 - Benar STRING1 dan STRING2 tidak sama. INTEGER1 -eq INTEGER2 - Integer INTEGER1 dan INTEGER2 sama. INTEGER1 -gt INTEGER2 - Integer INTEGER1 lebih besar daripada INTEGER2. INTEGER1 -lt INTEGER2 - Integer INTEGER1 kurang daripada INTEGER2. INTEGER1 -ge INTEGER2 - INTEGER1 -ge INTEGER2 sejati adalah sama atau lebih besar daripada INTEGER2. INTEGER1 -le INTEGER2 - Integer INTEGER1 sama atau kurang daripada INTEGER2. -h FILE - Benar jika FILE wujud dan merupakan pautan simbolik. -r FILE - Benar jika FILE wujud dan boleh dibaca. -w FILE - Benar jika FILE wujud dan boleh ditulis. -x FILE - Benar jika FILE wujud dan boleh laksana. -d FILE - Benar jika FILE ada dan direktori. -e FILE - Benar jika FILE wujud dan merupakan fail, tanpa mengira jenis (nod, direktori, soket, dan lain-lain). -f FILE - Benar jika FILE wujud dan merupakan fail biasa (bukan direktori atau peranti).

Kesimpulannya

if..else , if..else dan if..elif..else statements membolehkan anda untuk mengendalikan aliran pelaksanaan skrip Bash dengan menilai kondisi yang diberikan.

terminal bash