Android

Kuinka verrata merkkijonoja bashissa

PHP Syntax

PHP Syntax

Sisällysluettelo:

Anonim

Kun kirjoitat Bash-skriptejä, sinun on usein verrattava kahta merkkijonoa tarkistaaksesi, ovatko ne samoja. Kaksi merkkijonoa ovat yhtä suuret, kun niillä on sama pituus ja ne sisältävät saman merkkijonon.

Tämä opetusohjelma kuvaa kuinka verrata merkkijonoja Bashissa.

Vertailuoperaattorit

Vertailuoperaattorit ovat operaattoreita, jotka vertailevat arvoja ja palauttavat tosi tai vääriä. Kun vertaat merkkijonoja Bashissa, voit käyttää seuraavia operaattoreita:

  • string1 = string2 ja string1 == string2 - Tasa-arvo-operaattori palauttaa arvon true, jos operandit ovat yhtä suuret.
    • Käytä = operaattoria 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

      Kun skripti suoritetaan, se tulostaa seuraavan tulosteen.

      Strings are equal.

      Tässä on toinen komentosarja, joka ottaa käyttäjän syötteet ja vertaa annettuja merkkijonoja. Tässä esimerkissä käytämme ]; then echo "Strings are equal." else echo "Strings are not equal." fi ]; then echo "Strings are equal." else echo "Strings are not equal." fi

      Suorita komentosarja ja kirjoita merkkijonot pyydettäessä:

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

      Voit käyttää myös loogisia ja && ja tai || verrata merkkijonoja:

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

      Not equal

      Tarkista, sisältääkö merkkijono alijonoa

      On olemassa useita tapoja tarkistaa, sisältääkö merkkijono alijonoa.

      Yksi lähestymistapa on käyttää ympäröivää osamerkkijonoa tähdellä * mikä tarkoittaa, että kaikki merkit täsmäävät.

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

      Skripti kaikuu seuraavaa:

      It's there.

      Toinen vaihtoehto on käyttää regex-operaattoria =~ alla olevan kuvan mukaisesti:

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

      Aika, jota seuraa tähti .* Vastaa nollaa tai enemmän esiintymiä, mikä tahansa merkki paitsi uuden rivin merkki.

      Tarkista, onko merkkijono tyhjä

      Usein joudut myös tarkistamaan, onko muuttuja tyhjä merkkijono vai ei. Voit tehdä tämän käyttämällä -n ja -z operaattoreita.

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

      Jousten vertaaminen tapauksenhoitajaan

      Testioperaattoreiden käytön sijasta voit käyttää tapauslausetta merkkijonojen vertaamiseen:

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

      Linuxize matched.

      Leksikografinen vertailu

      Leksikografinen vertailu on toimenpide, jossa kahta merkkijonoa verrataan aakkosjärjestyksessä vertaamalla merkkijonon merkkejä peräkkäin vasemmalta oikealle. Tällaista vertailua käytetään harvoin.

      Seuraavat käsikirjoitukset vertaa kahta merkkijonoa sanakirjoisesti:

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

      Skripti tuottaa seuraavat:

      Ubuntu is lexicographically greater than Linuxize.

      johtopäätös

      Merkkijonojen vertailu on yksi bash-komentosarjojen yleisimmistä ja yleisimmin käytetyistä toimista. Kun olet lukenut tämän opetusohjelman, sinulla tulisi olla hyvä käsitys merkkijonon vertailusta Bashissa. Voit myös tarkistaa merkkijonojen liittämistä koskevan oppaamme.

      bash terminaali