Android

Hogyan lehet összehasonlítani a bash-ban levő húrokat?

Aktív Gitár: A húr és a tremoló titkos élete

Aktív Gitár: A húr és a tremoló titkos élete

Tartalomjegyzék:

Anonim

A Bash-szkriptek írásakor gyakran össze kell hasonlítania két karakterláncot annak ellenőrzésére, hogy egyenlők-e vagy sem. Két karakterlánc azonos, ha azonos hosszúságúak és azonos karakter sorozatot tartalmaznak.

Ez az oktatóanyag leírja, hogyan lehet összehasonlítani a karakterláncokat Bash-ban.

Összehasonlító operátorok

Az összehasonlító operátorok olyan operátorok, amelyek összehasonlítják az értékeket, és igaz vagy hamis eredményeket adnak vissza. A Bash karakterláncainak összehasonlításakor a következő operátorokat használhatja:

  • string1 = string2 és string1 == string2 - Az egyenlőség operátor igaznak ad vissza, ha az operandusok azonosak.
    • Használja a = operátort a 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

      A szkript végrehajtása után a következő kimenetet nyomtatja ki.

      Strings are equal.

      Itt van egy másik szkript, amely lekérdezi a felhasználót és összehasonlítja az adott karakterláncokat. Ebben a példában a ]; then echo "Strings are equal." else echo "Strings are not equal." fi ]; then echo "Strings are equal." else echo "Strings are not equal." fi

      Futtassa a szkriptet és írja be a karakterláncokat, amikor a rendszer kéri:

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

      Használhatja a logikai és a && és a || a húrok összehasonlításához:

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

      Not equal

      Ellenőrizze, hogy a karakterlánc tartalmaz-e alhúrot

      Többféle módon ellenőrizheti, hogy a karakterlánc tartalmaz-e egy alsávot.

      Az egyik megközelítés az, hogy az alsó karakterláncot csillag szimbólumokkal * vesszük körül, ami azt jelenti, hogy az összes karakter megegyezik.

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

      A szkript a következőket fogja visszhangozni:

      It's there.

      Egy másik lehetőség az, hogy a regex operátort =~ használja az alábbiak szerint:

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

      A csillaggal jelölt időszak .* Nulla vagy annál több előfordulást mutat, bármely karakter megegyezik egy új sor karakterrel.

      Ellenőrizze, hogy a karakterlánc üres-e

      Gyakran ellenőriznie kell, hogy a változó üres karakterlánc-e vagy sem. Ezt megteheti a -n és -z operátorok használatával.

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

      A húrok összehasonlítása az ügyvezetővel

      A teszt operátorok használata helyett az esetkifejezés segítségével összehasonlíthatja a karakterláncokat:

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

      Linuxize matched.

      Lexikográfiai összehasonlítás

      A lexikográfiai összehasonlítás olyan művelet, amelynek során két karakterláncot ábécé sorrendben hasonlítanak össze egy karakterlánc karaktereinek egymást követő összehasonlításával balról jobbra. Az ilyen összehasonlítást ritkán alkalmazzák.

      A következő szkriptek összehasonlítják a lexikografikusan két karakterláncot:

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

      A szkript a következőket adja ki:

      Ubuntu is lexicographically greater than Linuxize.

      Következtetés

      A karakterlánc összehasonlítása az egyik legalapvetőbb és leggyakrabban használt művelet a Bash parancsfájlokban. Miután elolvasta ezt az oktatóprogramot, jól értened kell, hogy miként hasonlíthatod össze a basszus húrokat. Ellenőrizheti a karakterláncok összekapcsolásáról szóló útmutatónkat is.

      bash terminál