Pro různé účely programování musíme porovnat hodnotu dvou řetězců. Vestavěné funkce se používají v mnoha programovacích jazycích k testování rovnosti dvou řetězců. Rovnost a nerovnost dvou řetězců v bash můžete zkontrolovat pomocí -li tvrzení. == slouží ke kontrole rovnosti a ! = slouží ke kontrole nerovnosti řetězců. Hodnoty dvou řetězců můžete částečně porovnat také v bash. Jak můžete porovnat hodnoty řetězců v bash, je ukázáno pomocí různých příkladů v tomto kurzu.
Příklad-1: Porovnání řetězců pomocí operátorů ==
Neexistuje žádná vestavěná srovnávací funkce pro kontrolu rovnosti dvou řetězcových hodnot v bash jako jiný standardní programovací jazyk. V následujícím skriptu dvě proměnné řetězce, strval1 a strval2 jsou deklarovány. Vlastní ekvivalence těchto dvou řetězcových proměnných se testuje pomocí první -li prohlášení skriptu. Hodnota strval1 je porovnána s řetězcovou hodnotou pro kontrolu rovnosti ve druhém -li tvrzení.
#!/bin/bash
strval1='Ubuntu'
strval2='Okna'
#Zkontrolujte rovnost dvou řetězcových proměnných
-li [ $ strval1==$ strval2 ];pak
vyhodil „Řetězce jsou si rovny“
jiný
vyhodil „Řetězce nejsou stejné“
být
#Zkontrolujte rovnost proměnné pomocí hodnoty řetězce
-li [ $ strval1=='Ubuntu' ];pak
vyhodil 'Operační systém Linux'
jiný
vyhodil 'Operační systém Windows'
být
Výstup:
První srovnání není stejné a druhé srovnání je stejné.
Příklad-2: Porovnání řetězců pomocí operátoru! =
Nerovnost dvou řetězcových proměnných je zkontrolována v následujícím příkladu. Zde dvě hodnoty nejsou stejné. Pokud tedy podmínka bude pravdivá a Operační systém Windows vytiskne.
#!/bin/bashstrval1='Ubuntu'
strval2='Okna'
#Zkontrolujte nerovnost proměnné pomocí řetězcové hodnoty
-li [ $ strval2 !='Ubuntu' ];pak
vyhodil 'Operační systém Windows'
jiný
vyhodil 'Operační systém Linux'
být
Výstup:
Příklad-3: Porovnání částečných řetězců
Částečnou hodnotu můžete porovnat pomocí zástupného znaku v bash skriptu. V následujícím skriptu * se používá jako zástupný znak pro částečné shody. Řetězcová proměnná, strval obsahuje slovo Internet. Takže první -li skriptu vrátí true a vytiskne se Částečně zápas . Bash rozlišuje velká a malá písmena. Za to druhé -li skriptu vrátí hodnotu false pro použití internetu jako částečného řetězce, který se nerovná porovnávání písmen.
#!/bin/bashstrval='Microsoft Internet Explorer'
-li [[ $ strval==*Internet* ]];
pak
vyhodil 'Částečně shoda'
jiný
vyhodil 'Žádná shoda'
být
-li [[ $ strval==*Internet* ]];
pak
vyhodil 'Částečně shoda'
jiný
vyhodil 'Žádná shoda'
být
Výstup:
Příklad-4: Porovnejte řetězec se vstupní hodnotou uživatele
Někdy musíme pro účely programování porovnat hodnotu řetězce použitou uživatelem s konkrétní hodnotou řetězce. V následujícím příkladu budou řetězcová data převzata od uživatele jako vstup a porovnána nerovnost dat s pevnou hodnotou. Pokud je podmínka pravdivá, vytiskne se nebyl nalezen žádný záznam , jinak se vytiskne Záznam nalezen .
#!/bin/bashvyhodil 'Zadejte své jméno'
čístvstup
-li [ $ vstup !='Fahmida' ];
pak
vyhodil 'Nebyl nalezen žádný záznam'
jiný
vyhodil 'Záznam nalezen'
být
Výstup:
Video z této lekce je zde:
Po dokončení výše uvedených příkladů s jasným porozuměním pro vás bude úkol porovnávání řetězců v bash jednodušší.