Ako porovnať reťazce v Bash

How Compare Strings Bash



Na rôzne účely programovania musíme porovnať hodnotu dvoch reťazcov. Vstavané funkcie sa používajú v mnohých programovacích jazykoch na testovanie rovnosti dvoch reťazcov. Rovnosť a nerovnosť dvoch reťazcov v bash môžete skontrolovať pomocou keby vyhlásenie. == slúži na kontrolu rovnosti a ! = slúži na kontrolu nerovnosti reťazcov. Hodnoty dvoch reťazcov môžete čiastočne porovnať aj v bash. Ako môžete porovnať hodnoty reťazcov v bash, je ukázané na rôznych príkladoch v tomto návode.

Príklad-1: Porovnanie reťazcov pomocou operátorov ==

Neexistuje žiadna vstavaná porovnávacia funkcia na kontrolu rovnosti dvoch reťazcových hodnôt v bashe ako v inom štandardnom programovacom jazyku. V nasledujúcom skripte dve premenné reťazca, strval1 a strval2 sú vyhlásené. Rovnosť týchto dvoch reťazcových premenných sa testuje pomocou prvej keby vyjadrenie scenára. Hodnota strval1 je porovnaný s hodnotou reťazca na kontrolu rovnosti v druhom keby vyhlásenie.







#!/bin/bash

strval1=„Ubuntu“
strval2=„Windows“

#Skontrolujte rovnosť dvoch reťazcových premenných

keby [ $ strval1==$ strval2 ];potom
zahodil „Reťazce sú si rovné“
inak
zahodil „Reťazce nie sú rovnaké“
byť

#Skontrolujte rovnosť premennej s hodnotou reťazca

keby [ $ strval1==„Ubuntu“ ];potom
zahodil „Operačný systém Linux“
inak
zahodil „Operačný systém Windows“
byť

Výkon:



Prvé porovnanie nie je rovnaké a druhé porovnanie je rovnaké.







Príklad 2: Porovnanie reťazcov pomocou operátora! =

Nerovnosť dvoch reťazcových premenných je skontrolovaná v nasledujúcom príklade. Tu dve hodnoty nie sú rovnaké. Ak teda podmienka bude pravdivá a Operačný systém Windows vytlačí.

#!/bin/bash

strval1=„Ubuntu“
strval2=„Windows“

#Skontrolujte nerovnosť premennej pomocou hodnoty reťazca

keby [ $ strval2 !=„Ubuntu“ ];potom
zahodil „Operačný systém Windows“
inak
zahodil „Operačný systém Linux“
byť

Výkon:



Príklad 3: Porovnanie čiastočných reťazcov

Čiastočnú hodnotu môžete porovnať pomocou zástupného znaku v skriptu bash. V nasledujúcom skripte, * sa používa ako zástupný znak pre čiastočné párovanie. Reťazcová premenná, strval obsahuje slovo Internet. Takže prvý keby skriptu vráti hodnotu true a vytlačí sa Čiastočne zápas . Bash rozlišuje veľké a malé písmená. Za toto, druhé keby skriptu vráti hodnotu false pre použitie internetu ako čiastočného reťazca, ktorý sa nerovná porovnaniu písmen.

#!/bin/bash

strval=„Microsoft Internet Explorer“

keby [[ $ strval==*Internet* ]];
potom
zahodil „Čiastočne zhodný“
inak
zahodil 'Žiadna zhoda'
byť

keby [[ $ strval==*Internet* ]];
potom
zahodil „Čiastočne zhodný“
inak
zahodil 'Žiadna zhoda'
byť

Výkon:

Príklad 4: Porovnajte reťazec s hodnotou zadanou používateľom

Niekedy musíme na účely programovania porovnať hodnotu reťazca prijatú používateľom s konkrétnou hodnotou reťazca. V nasledujúcom príklade budú reťazcové údaje prevzaté od používateľa ako vstup a porovnané nerovnosti údajov s pevnou hodnotou. Ak je podmienka pravdivá, vytlačí sa Nebol nájdený žiadny záznam , inak sa vytlačí Našiel sa záznam .

#!/bin/bash

zahodil 'Zadajte svoje meno'
čítaťvstup

keby [ $ vstup !=„Fahmida“ ];
potom
zahodil 'Nebol nájdený žiadny záznam'
inak
zahodil „Záznam nájdený“
byť

Výkon:

Video z tejto lekcie nájdete tu:

Po dokončení vyššie uvedených príkladov s jasným porozumením vám bude jednoduchšie porovnať úlohy v bash.