Bandingkan rentetan dalam bash

Bandingkan rentetan dalam bash

Keperluan untuk membandingkan rentetan dalam skrip bash agak biasa dan boleh digunakan untuk memeriksa syarat -syarat tertentu sebelum meneruskan ke bahagian seterusnya skrip. Rentetan boleh menjadi urutan watak. Untuk menguji jika dua rentetan adalah sama, kedua -dua rentetan mesti mengandungi aksara yang sama dan mengikut urutan yang sama. Ia boleh menjadi perkataan atau keseluruhan ayat. Sebagai contoh, rentetan satu adalah sama dengan rentetan satu tetapi tidak sama dengan rentetan dua. Dapatkan idea itu?

Dalam panduan ini, kami akan menunjukkan kepada anda bagaimana membandingkan rentetan dalam shell bash pada sistem linux. Kami akan menunjukkan ini dalam konteks skrip yang mudah jika/lain bash sehingga anda dapat melihat bagaimana ujian untuk keadaan ini akan berfungsi ketika membangunkan skrip, tetapi kami juga akan menunjukkan bagaimana perbandingan yang sama dapat dilakukan di terminal baris arahan.

Dalam tutorial ini anda akan belajar:

  • Cara membandingkan rentetan di bash
  • Contoh jika/lain skrip bash yang membandingkan rentetan
Membandingkan rentetan dalam bash Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Mana -mana distro Linux
Perisian N/a
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Bandingkan jika dua rentetan sama

Anda boleh membuka terminal pada sistem anda dan menggunakan beberapa contoh ini untuk merasakan bagaimana pengendali bash berfungsi ketika membandingkan rentetan.

Anda boleh menggunakan sintaks berikut untuk membandingkan dua rentetan.

$ ["epal" = "epal"] $ echo $? 0 

Nilai yang dikembalikan 0 bermaksud benar. Dalam erti kata lain, rentetan sepadan (seperti yang kita dapat melihat sendiri).



Mari cuba yang lain.

$ ["epal" = "oren"] $ echo $? 1 

Dalam contoh ini, epal tidak sama oren, Jadi nilai 1 (palsu) dikembalikan. Contoh yang lebih kompleks adalah yang terbaik ditunjukkan dalam konteks skrip bash, yang kami tutupi di bahagian seterusnya.

Contoh skrip bash untuk membandingkan rentetan

Dalam skrip bash, biasanya anda akan menyimpan satu atau kedua -dua rentetan anda sebagai pembolehubah sebelum membandingkannya. Inilah contoh mudah.

#!/bin/bash string1 = "epal" string2 = "oren" jika ["$ string1" = "$ string2"]; Kemudian echo "Dua rentetan sama."lain echo" kedua -dua rentetan tidak sama."Fi
Salinan

Melaksanakan skrip ini akan menghasilkan output berikut.

Kedua -dua rentetan tidak sama. 

Tetapi = Bukankah satu -satunya pengendali yang tersedia untuk kami. Kami juga boleh menguji untuk melihat sama ada dua rentetan tidak sama dengan != pengendali.

#!/bin/bash string1 = "epal" string2 = "oren" jika ["$ string1" != "$ string2"]; Kemudian echo "rentetan berbeza.rentetan "lain echo" tidak berbeza."Fi
Salinan

Melaksanakan skrip ini akan menghasilkan output berikut.

Rentetan berbeza. 

Ada juga -z untuk menguji jika panjang rentetan adalah 0, dan -n untuk menguji jika panjang rentetan bukan sifar.

#!/bin/bash string = "" if [[-z $ string]]; Kemudian echo "rentetan kosong."lain echo" rentetan tidak kosong."Fi
Salinan

Melaksanakan skrip ini akan menghasilkan output berikut.

Rentetannya kosong. 

Dan skrip yang sama dengan -n dan rentetan bukan sifar sebaliknya:



#!/bin/bash string = "hello" jika [[-n $ string]]; Kemudian echo "rentetan tidak kosong."lain echo" rentetan kosong."Fi
Salinan

Melaksanakan skrip ini akan menghasilkan output berikut.

Rentetan tidak kosong. 

Kesimpulan

Dalam panduan ini, kita melihat bagaimana membandingkan rentet. Fungsi ini tentu saja boleh diperluaskan kepada skrip yang lebih mantap yang membaca input dari pengguna atau menggunakan pengendali kes, dll.

Ini semua kaedah perbandingan yang anda perlukan untuk membandingkan rentetan dalam bash. Lebih banyak wujud apabila membandingkan nombor, seperti -Lt (kurang daripada) dan -gt (lebih besar daripada) pengendali. Tetapi kami menutupnya dengan lebih terperinci dalam panduan skrip bash kami.

Tutorial Linux Berkaitan:

  • Skrip bash: Contoh perbandingan rentetan
  • Asas Editor Vim di Linux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Menguasai Gelung Skrip Bash
  • Pemboleh ubah bash khas dengan contoh
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..
  • Gelung bersarang dalam skrip bash
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux