Cara Menguasai Logik Bersyarat dalam Bash

Cara Menguasai Logik Bersyarat Dalam Bash



Penggunaan logik bersyarat adalah bahagian yang sangat penting dalam mana-mana bahasa pengaturcaraan. Logik bersyarat boleh dilaksanakan dalam Bash dengan cara yang berbeza untuk menyelesaikan masalah pengaturcaraan. Kaedah menggunakan logik bersyarat dalam Bash melalui pelbagai jenis pernyataan 'jika' dan 'kes' untuk membandingkan rentetan dan nilai angka, menyemak kandungan pembolehubah, menyemak kewujudan fail atau direktori, dsb. ditunjukkan dalam tutorial ini .

Senarai Kandungan:

  1. Penggunaan Pernyataan “Jika”.
  2. Penggunaan Pernyataan “If-Else”.
  3. Penggunaan Pernyataan “If-Elif-Else”.
  4. Penggunaan Pernyataan 'Jika' untuk Menyemak Pembolehubah Kosong
  5. Penggunaan Pernyataan 'Jika' dengan Operator Logik
  6. Penggunaan Penyata 'Jika' Bersarang
  7. Penggunaan Pernyataan 'Jika' untuk Menyemak Kewujudan Fail
  8. Penggunaan Pernyataan 'Jika' untuk Menyemak Kewujudan Direktori
  9. Penggunaan Pernyataan 'Jika' dengan Regex
  10. Penggunaan Pernyataan 'Kes'.

Penggunaan Pernyataan “Jika”.

Contoh ini menunjukkan penggunaan ringkas pernyataan 'jika' dalam Bash. Enam jenis operator perbandingan boleh digunakan untuk membandingkan nilai angka dalam Bash. Ini ialah '-eq' (sama), '-ne' (tidak sama), '-le' (kurang daripada sama), '-ge' (lebih besar daripada sama), '-lt' (kurang daripada), dan ' -gt” (lebih besar daripada). Penggunaan '-lt' dan '-eq' ditunjukkan dalam skrip berikut sama ada nombornya kurang daripada 99 atau belum disemak menggunakan operator '-lt'. Nombor itu genap atau ganjil dan disemak oleh pengendali '-eq'.







#!/bin/bash

#Tetapkan nilai berangka

( ( nombor = lima puluh ) )

#Semak nilai berangka menggunakan pernyataan 'jika'

jika [ $nombor -lt 99 ]

kemudian

bergema 'Nombor adalah sah.'

jadilah

#Semak sama ada nombor itu genap atau tidak

jika [ $ ( ( $nombor % 2 ) ) -persamaan 0 ]

kemudian

bergema 'Nombor genap.'

jadilah

Pengeluaran :



Output berikut muncul selepas melaksanakan skrip sebelumnya:



  p1





Pergi ke atas

Penggunaan Pernyataan “If-Else”.

Penggunaan pernyataan “if-else” ditunjukkan dalam skrip berikut. Nilai rentetan diambil daripada pengguna dan menyemak sama ada nilai itu 'BIRU' atau tidak menggunakan pernyataan 'jika-lain'.



#!/bin/bash

#Ambil nilai rentetan daripada pengguna

membaca -hlm 'Masukkan warna kegemaran anda:' warna

#Semak nilai rentetan menggunakan pernyataan 'if-else'

jika [ ${warna^^} == 'BIRU' ]

kemudian

bergema 'Baik, warna Biru ada.'

lain

bergema ' $warna tidak boleh didapati.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip sebelumnya jika 'merah' diambil sebagai input:

  p2-1

Output berikut muncul selepas melaksanakan skrip sebelumnya jika 'biru' diambil sebagai input:

  p2-2

Pergi ke atas

Penggunaan Pernyataan “If-Elif-Else”.

Penggunaan pernyataan 'if-elif-else' ditunjukkan dalam skrip berikut. Nombor diambil daripada pengguna dan disemak dengan nilai yang berbeza sehingga sebarang padanan ditemui. Jika mana-mana padanan ditemui, mesej yang sepadan akan dicetak. Jika tiada padanan ditemui, mesej lalai akan dicetak.

#!/bin/bash

#Ambil nilai id daripada pengguna

membaca -hlm 'Masukkan nombor siri anda:' bersiri

#Semak nilai input menggunakan pernyataan 'if-elif-else'

jika [ $siri == '4523' ]

kemudian

bergema 'Anda dipilih dalam kumpulan A.'

Elif [ $siri == '8723' ]

kemudian

bergema 'Anda dipilih dalam kumpulan B.'

Elif [ $siri == '3412' ]

kemudian

bergema 'Anda dipilih dalam kumpulan C.'

lain

bergema 'Anda tidak terpilih' .

jadilah

Pengeluaran:

Output berikut muncul selepas melaksanakan skrip dengan nilai 8723:

  p3-1

Output berikut muncul selepas melaksanakan skrip dengan nilai 9078:

  p3-2

Pergi ke atas

Penggunaan Pernyataan 'Jika' untuk Menyemak Pembolehubah Kosong

Kaedah menyemak sama ada pembolehubah kosong tidak menggunakan pernyataan 'jika' ditunjukkan dalam skrip berikut. Pilihan '-z' digunakan dalam pernyataan 'jika' untuk melakukan tugas ini.

#!/bin/bash

#Ambil nilai id daripada pengguna

membaca -hlm 'Masukkan nombor siri anda:' bersiri

#Semak sama ada pembolehubah kosong atau tidak

jika [ ! -Dengan $siri ]

kemudian

#Semak nilai input menggunakan pernyataan 'if-elif-else'

jika [ $siri == '690' ]

kemudian

bergema 'Anda dipilih dalam pasukan-1.'

Elif [ $siri == '450' ]

kemudian

bergema 'Anda dipilih dalam pasukan-2.'

lain

bergema 'Anda tidak terpilih' .

jadilah

lain

bergema 'Tiada nombor siri diberikan.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan nilai 690:

  p4-1

Output berikut muncul selepas melaksanakan skrip jika tiada nilai input diambil:

  p4-2

Pergi ke atas

Penggunaan Pernyataan 'Jika' dengan Operator Logik

Tiga jenis operator logik boleh digunakan dalam pernyataan bersyarat Bash. Ini adalah logik ATAU (||), logik DAN (&&), dan logik NOT (!). Nilai kod diambil daripada pengguna. Jika nilai input bukan kosong, nilai itu disemak dengan dua nilai kod menggunakan logik ATAU. Jika nilai sepadan dengan mana-mana kod, mesej yang sepadan akan dicetak. Jika tiada kod sepadan ditemui, mesej lalai akan dicetak.

#!/bin/bash

#Ambil kod kursus daripada pengguna

membaca -hlm 'Masukkan kod kursus:' kod

#Semak sama ada pembolehubah kosong atau tidak

jika [ ! -Dengan $kod ]

kemudian

#Semak nilai input menggunakan pernyataan 'if-elif-else'

jika [ [ $kod == 'CSE-106' || $kod == 'CSE-108' ] ]

kemudian

bergema 'Kursus CSE.'

Elif [ [ $kod == 'BBA-203' || $kod == 'BBA-202' ] ]

kemudian

bergema 'Kursus BBA.'

lain

bergema 'Kod kursus tidak sah.'

jadilah

lain

bergema 'Tiada kod kursus diberikan.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan nilai input 'CSE-108':

  p5-1

Output berikut muncul selepas melaksanakan skrip dengan nilai input 'BBA-56':

  p5-2

Pergi ke atas

Penggunaan Pernyataan 'Jika' Bersarang

Apabila keadaan 'jika' digunakan dalam keadaan 'jika' yang lain, ia dipanggil pernyataan 'jika' bersarang. Kaedah menggunakan 'jika' bersarang ditunjukkan dalam skrip berikut. Dua nilai markah diambil daripada pengguna. Jika nilai input tidak kosong, syarat 'jika' pertama menyemak sama ada nilai '$theory' lebih besar daripada atau sama dengan 60 atau tidak. Jika keadaan 'jika' pertama mengembalikan 'benar', syarat 'jika' kedua menyemak sama ada nilai '$lab' lebih besar daripada atau sama dengan 50 atau tidak. Jika syarat 'jika' kedua juga mengembalikan 'benar', mesej kejayaan dicetak. Jika tidak, mesej kegagalan dicetak.

#!/bin/bash

#Ambil tanda teori

membaca -hlm 'Masukkan tanda teori:' teori

#Ambil tanda makmal

membaca -hlm 'Masukkan tanda makmal:' makmal

#Semak sama ada pembolehubah kosong atau tidak

jika [ [ ! -Dengan $teori && ! -Dengan $lab ] ]

kemudian

#Semak nilai input menggunakan pernyataan 'jika' bersarang

jika [ $teori -ge 60 ]

kemudian

jika [ $lab -ge lima puluh ]

kemudian

bergema 'Awak dah lulus.'

lain

bergema 'Anda telah gagal.'

jadilah

lain

bergema 'Anda telah gagal.'

jadilah

lain

bergema 'Teori atau tanda makmal kosong.'

jadilah

Pengeluaran :

Output berikut muncul jika kedua-dua atau satu daripada nilai input kosong:

  p6-1

Output berikut muncul jika 78 diambil sebagai markah teori dan 45 diambil sebagai markah makmal. Di sini, keadaan 'jika' kedua mengembalikan 'salah':

  p6-2

Output berikut muncul jika 67 diambil sebagai markah teori dan 56 diambil sebagai markah makmal. Di sini, kedua-dua syarat 'jika' mengembalikan 'benar':

  p6-3

Output berikut muncul jika 50 diambil sebagai markah teori dan 80 diambil sebagai markah makmal. Di sini, syarat 'jika' pertama mengembalikan 'salah':

  p6-4

Pergi ke atas

Penggunaan Pernyataan 'Jika' untuk Menyemak Kewujudan Fail

Kewujudan fail boleh disemak oleh skrip bash dalam dua cara. Seseorang menggunakan operator '-f' dengan kurungan '[]'. Satu lagi menggunakan arahan 'ujian' dan pengendali '-f'. Nama fail diambil dan menyemak kewujudan fail menggunakan syarat 'jika' dengan pengendali '-f'. Kemudian, nama fail lain diambil dan semak kewujudan fail menggunakan pernyataan 'jika' dengan arahan 'ujian' dan pengendali '-f'.

#!/bin/bash

#Ambil nama fail

membaca -hlm 'Masukkan nama fail:' fn1

#Semak sama ada fail itu wujud atau tidak tanpa menggunakan `ujian`

jika [ -f $fn1 ]

kemudian

bergema ' $fn1 fail wujud.'

lain

bergema ' $fn1 fail tidak wujud.'

jadilah

#Tambah baris baharu

bergema

#Ambil nama fail lain

membaca -hlm 'Masukkan nama fail lain:' fn2

#Semak sama ada fail itu wujud atau tidak menggunakan `test`

jika ujian -f $fn2 ; kemudian

bergema ' $fn2 fail wujud.'

#Semak sama ada fail kosong atau tidak menggunakan `ujian`

jika ujian -Dengan $fn2 ; kemudian

bergema ' $fn2 fail kosong.'

lain

bergema ' $fn2 fail tidak kosong.'

jadilah

lain

bergema ' $fn2 fail tidak wujud.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan mengambil 'test.txt' dan 'testing.txt' sebagai nama fail. Mengikut output, kedua-dua fail wujud di lokasi semasa dan fail 'testing.txt' kosong:

  p7-1

Output berikut muncul selepas melaksanakan skrip dengan mengambil 'f1.txt' dan 'test.txt' sebagai nama fail. Mengikut output, fail 'f1.txt' tidak wujud di lokasi semasa dan fail 'test.txt' tidak kosong:

  p7-2

Pergi ke atas

Penggunaan Pernyataan 'Jika' untuk Menyemak Kewujudan Direktori

Kewujudan direktori boleh disemak oleh skrip Bash dalam dua cara seperti fail. Seseorang menggunakan operator '-d' dengan kurungan '[]'. Satu lagi menggunakan arahan 'ujian' dan pengendali '-d'. Nama direktori diambil dan menyemak kewujudan direktori menggunakan syarat 'jika' dengan pengendali '-d'. Kemudian, nama direktori lain diambil dan menyemak kewujudan fail menggunakan pernyataan 'jika' dengan arahan 'ujian' dan pengendali '-d'.

#!/bin/bash

#Ambil nama direktori

membaca -hlm 'Masukkan nama direktori:' awak1

#Semak sama ada direktori itu wujud atau tidak tanpa menggunakan `ujian`

jika [ -d $dir1 ]

kemudian

bergema ' $dir1 direktori wujud.'

lain

bergema ' $dir1 direktori tidak wujud.'

jadilah

#Tambah baris baharu

bergema

#Ambil nama direktori lain

membaca -hlm 'Masukkan nama direktori lain:' dir2

#Semak sama ada fail itu wujud atau tidak menggunakan `test`

jika ujian -d $dir2

kemudian

bergema ' $dir2 direktori wujud.'

lain

bergema ' $dir2 direktori tidak wujud.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan nama direktori 'temp' dan 'fail'. Mengikut output, kedua-dua direktori wujud di lokasi semasa. Kemudian, arahan 'ls' dilaksanakan untuk menyemak kandungan direktori:

  p8-1

Output berikut muncul selepas melaksanakan skrip dengan nama direktori 'pengujian' dan 'baru'. Mengikut output, kedua-dua direktori tidak wujud di lokasi semasa. Kemudian, output arahan 'ls' menunjukkan bahawa kedua-dua direktori tidak wujud:

  p8-2

Pergi ke atas

Penggunaan Pernyataan 'Jika' dengan Regex

Skrip berikut menunjukkan kaedah mengesahkan data input menggunakan pernyataan 'jika' dengan regex. Di sini, dua nilai input diambil daripada pengguna dan disimpan dalam pembolehubah '$bookname' dan '$bookprice'. Keadaan 'jika' digunakan dalam skrip untuk menyemak sama ada pembolehubah '$bookname' mengandungi semua aksara abjad dan '$bookprice' mengandungi nombor.

#!/bin/bash

#Ambil nama buku dan harga daripada pengguna

bergema -n 'Masukkan nama buku:'

membaca nama buku

bergema -n 'Masukkan harga buku:'

membaca harga buku

#Semak nama buku mengandungi abjad sahaja

jika ! [ [ ' $nama buku ' =~ [ A-Za-z ] ] ] ; kemudian

bergema 'Nama buku tidak sah.'

lain

bergema 'Nama buku adalah sah.'

jadilah

#Semak harga buku mengandungi digit sahaja

jika ! [ [ ' $harga buku ' =~ [ 0 - 9 ] ] ] ; kemudian

bergema 'Harga buku boleh mengandungi digit sahaja.'

lain

bergema 'Harga buku adalah sah.'

jadilah

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan nilai input 'Bash Programming' sebagai nama buku dan 78 sebagai harga buku:

  p9-1

Output berikut muncul selepas melaksanakan skrip dengan nilai input 90 sebagai nama buku dan 'Bash' sebagai harga buku:

  p9-2

Pergi ke atas

Penggunaan Pernyataan 'Kes'.

Pernyataan 'kes' ialah alternatif bagi pernyataan 'if-elif-else' tetapi semua tugasan pernyataan 'if-elif-else' tidak boleh dilakukan menggunakan pernyataan 'case'. Penggunaan ringkas pernyataan 'kes' ditunjukkan dalam skrip berikut. Nilai angka diambil daripada pengguna sebagai nilai bulan semasa. Kemudian, bulan yang sepadan dicetak jika sebarang nilai yang sepadan ditemui dalam penyata 'kes'. Jika tidak, mesej lalai akan dicetak.

#!/bin/bash

#Ambil nilai bulan semasa dalam nombor

membaca -hlm 'Masukkan bulan hari ini dalam bilangan:' b_bulan

#Cetak teks sebelum mencetak nama bulan

bergema -n 'Nama bulan semasa ialah '

#Ketahui dan cetak nama bulan yang sepadan berdasarkan input

kes $b_month dalam

1 | 01 ) bergema 'Januari.' ;;

2 | 02 ) bergema 'Februari.' ;;

3 | 03 ) bergema 'Mac.' ;;

4 | 04 ) bergema 'April.' ;;

5 | 05 ) bergema 'Mungkin.' ;;

6 | 06 ) bergema 'Jun.' ;;

7 | 07 ) bergema 'Julai.' ;;

8 | 08 ) bergema 'Ogos.' ;;

9 | 09 ) bergema 'September.' ;;

10 ) bergema 'Oktober.' ;;

sebelas ) bergema 'November.' ;;

12 ) bergema 'Disember.' ;;

* ) bergema 'tidak ditemui.' ;;

esac

Pengeluaran :

Output berikut muncul selepas melaksanakan skrip dengan nilai 6:

  p10-1

Output berikut muncul selepas melaksanakan skrip dengan nilai 09:


  p10-2

Output berikut muncul selepas melaksanakan skrip dengan nilai 14:

  p10-3

Pergi ke atas

Kesimpulan

Penggunaan logik bersyarat yang berbeza menggunakan pernyataan 'jika' dan 'kes' ditunjukkan dalam 10 contoh tutorial ini. Konsep menggunakan logik bersyarat dalam Bash akan dikosongkan untuk pengguna Bash baharu selepas membaca tutorial ini.