Android

Cara membandingkan string dalam bash

Como Invertir un Numero en C++ - Ejercicios Resueltos 17

Como Invertir un Numero en C++ - Ejercicios Resueltos 17

Daftar Isi:

Anonim

Saat menulis skrip Bash Anda harus sering membandingkan dua string untuk memeriksa apakah mereka sama atau tidak. Dua string sama ketika mereka memiliki panjang yang sama dan berisi urutan karakter yang sama.

Tutorial ini menjelaskan cara membandingkan string di Bash.

Operator Perbandingan

Operator pembanding adalah operator yang membandingkan nilai dan mengembalikan nilai true atau false. Saat membandingkan string di Bash Anda dapat menggunakan operator berikut:

  • string1 = string2 dan string1 == string2 - Operator persamaan mengembalikan true jika operan sama.
    • Gunakan operator = dengan test ; then echo "Strings are equal." else echo "Strings are not equal." fi ; then echo "Strings are equal." else echo "Strings are not equal." fi

      Ketika skrip dieksekusi, ia akan mencetak output berikut.

      Strings are equal.

      Berikut ini adalah skrip lain yang mengambil input dari pengguna dan membandingkan string yang diberikan. Dalam contoh ini, kita akan menggunakan ]; then echo "Strings are equal." else echo "Strings are not equal." fi ]; then echo "Strings are equal." else echo "Strings are not equal." fi

      Jalankan skrip dan masukkan string ketika diminta:

      Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.

      Anda juga dapat menggunakan logika dan && dan atau || untuk membandingkan string:

      ] && echo "Equal" || echo "Not equal"

      Not equal

      Periksa apakah sebuah String Mengandung Substring

      Ada beberapa cara untuk memeriksa apakah string berisi substring.

      Salah satu pendekatan adalah menggunakan surround substring dengan simbol tanda bintang * yang berarti cocok dengan semua karakter

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      Script akan mengulangi yang berikut:

      It's there.

      Pilihan lain adalah menggunakan operator regex =~ seperti yang ditunjukkan di bawah ini:

      #!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi

      Periode yang diikuti oleh tanda bintang .* Cocok dengan nol atau lebih kemunculan karakter apa pun kecuali karakter baris baru.

      Periksa apakah sebuah String kosong

      Cukup sering Anda juga perlu memeriksa apakah suatu variabel adalah string kosong atau tidak. Anda dapat melakukan ini dengan menggunakan operator -n dan -z .

      #!/bin/bash VAR='' if]; then echo "String is empty." fi

      String is empty.

      #!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi

      String is not empty.

      Membandingkan Strings dengan Operator Kasus

      Alih-alih menggunakan operator uji Anda juga dapat menggunakan pernyataan kasus untuk membandingkan string:

      #!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac

      Linuxize matched.

      Perbandingan Leksikografis

      Perbandingan leksikografis adalah operasi di mana dua string dibandingkan secara alfabet dengan membandingkan karakter dalam string secara berurutan dari kiri ke kanan. Perbandingan semacam ini jarang digunakan.

      Skrip berikut membandingkan dua string secara leksikografis:

      #!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fi

      Script akan menampilkan yang berikut:

      Ubuntu is lexicographically greater than Linuxize.

      Kesimpulan

      Membandingkan string adalah salah satu operasi paling dasar dan paling sering digunakan dalam skrip Bash. Setelah membaca tutorial ini, Anda harus memiliki pemahaman yang baik tentang cara membandingkan string di Bash. Anda juga dapat memeriksa panduan kami tentang penggabungan string.

      terminal bash