Cara Menulis Pernyataan IF dalam Bash-Script

Perintah, Sintaks dan Contoh

Dengan pernyataan jika, yang merupakan jenis penyataan bersyarat, anda boleh melakukan tindakan yang berlainan bergantung pada syarat yang ditetapkan. Ia secara berkesan memberikan sistem keupayaan untuk membuat keputusan.

Satu contoh bentuk paling mudah jika pernyataan adalah:

hitung = 5 jika [$ count == 5] kemudian echo "$ count" fi

Dalam contoh ini, "kiraan" berubah digunakan untuk menentukan keadaan yang digunakan sebagai sebahagian daripada pernyataan jika. Sebelum pernyataan jika dilaksanakan, pembolehubah "count" diberikan nilai "5". Jika pernyataan-jika kemudian memeriksa sama ada nilai "kiraan" adalah "5". Jika demikian, pernyataan di antara kata kunci "kemudian" dan "fi" akan dilaksanakan, jika tidak, apa-apa kenyataan yang berikutan pernyataan jika dilaksanakan. Kata kunci "fi" ialah "jika" dieja ke belakang. Bahasa skrip bash menggunakan konvensyen ini untuk menandakan berakhirnya ungkapan rumit, seperti pernyataan jika atau pernyataan kes.

Kenyataan "echo" mencetak hujahnya, dalam kes ini, nilai pembolehubah "dikira", ke tetingkap terminal. Pengenalan kod antara kata kunci pernyataan jika meningkatkan kebolehbacaan tetapi tidak perlu.

Jika anda mempunyai situasi di mana sekeping kod harus dijalankan hanya jika keadaan tidak benar, anda boleh menggunakan kata kunci "lain" dalam pernyataan jika, seperti dalam contoh ini:

hitung = 5 jika [$ count == 5] kemudian echo "$ count" else echo "count is not 5" fi

Jika keadaan "$ count == 5" adalah benar, sistem mencetak nilai "mengira" pemboleh ubah, jika tidak ia mencetak rentetan "mengira tidak 5".

Jika anda ingin membezakan antara pelbagai syarat, anda boleh menggunakan kata kunci "elif", yang berasal dari "else if", seperti dalam contoh ini:

jika [$ count == 5] maka echo "kiraan adalah lima" elif [$ count == 6] kemudian echo "hitung enam" lain echo "tiada di atas" fi

Sekiranya "kiraan" adalah "5", sistem itu mencetak "kiraan adalah lima". Jika "mengira" bukan "5" tetapi "6", sistem mencetak "mengira enam". Jika ia bukan "5" atau "6", sistem mencetak "tidak ada di atas".

Seperti yang mungkin anda fikirkan, anda boleh mempunyai apa-apa bilangan klausa "elif". Satu contoh dengan pelbagai "elif" akan menjadi:

jika [$ count == 5] maka echo "hitung lima" elif [$ count == 6] kemudian echo "hitung enam" elif [$ count == 7] kemudian echo "count is seven" = 8] maka echo "hitung lapan" elif [$ count == 9] kemudian echo "hitung sembilan" lain echo "tidak ada di atas" fi

Cara yang lebih kompak untuk menulis kenyataan dengan pelbagai syarat ialah kaedah kes . Ia berfungsi sama dengan kenyataan jika mempunyai banyak fasal "elif" tetapi lebih ringkas. Sebagai contoh, sekeping kod di atas boleh ditulis semula dengan pernyataan "kes" seperti berikut:

kes "kiraan $" dalam 5) echo "kiraan adalah lima" ;; 6) echo "count is six" ;; 7) echo "count is seven" ;; 8) echo "kiraan adalah lapan" ;; 9) echo "kiraan adalah sembilan" ;; *) echo "none of the above" esac

Jika-penyataan sering digunakan di dalam for-loops atau loop sementara seperti dalam contoh ini:

count = 1 done = 0 while [$ count -le 9] do sleep 1 ((count ++)) if [$ count == 5] then continue fi echo "$ count" done echo Finished

Anda juga boleh bersarang jika pernyataan. Sederhana bersarang jika pernyataan adalah bentuk: jika ... maka ... lain ... jika ... maka ... fi ... fi. Walau bagaimanapun, jika kenyataan boleh bersarang dengan kerumitan sewenang-wenangnya.

Lihat juga cara lulus argumen ke skrip bash , yang menunjukkan cara menggunakan syarat untuk memproses parameter yang diluluskan dari baris arahan.

Cakera bash menyediakan pembinaan pengaturcaraan lain, seperti for-loops , sementara-gelung , dan ungkapan aritmetik .