Como Invertir un Numero en C++ - Ejercicios Resueltos 17
Obsah:
- Porovnání operátorů
- Zkontrolujte, zda řetězec obsahuje podřetězec
- Zkontrolujte, zda je řetězec prázdný
- Porovnání řetězců s operátorem případu
- Lexikografické srovnání
- Závěr
Při psaní skriptů Bash budete často muset porovnat dva řetězce, abyste si ověřili, zda jsou stejné nebo ne. Dva řetězce jsou stejné, pokud mají stejnou délku a obsahují stejnou posloupnost znaků.
Tento tutoriál popisuje, jak porovnat řetězce v Bash.
Porovnání operátorů
Operátory porovnání jsou operátory, které porovnávají hodnoty a vrací pravdivé nebo nepravdivé hodnoty. Při porovnávání řetězců v Bashu můžete použít následující operátory:
-
string1 = string2astring1 == string2- Operátor rovnosti vrací true, pokud jsou operandy stejné.- Při
testpoužijte operátor=; then echo "Strings are equal." else echo "Strings are not equal." fi; then echo "Strings are equal." else echo "Strings are not equal." fiPo spuštění skriptu vytiskne následující výstup.
Strings are equal.Zde je další skript, který vezme vstup od uživatele a porovná dané řetězce. V tomto příkladu použijeme
]; then echo "Strings are equal." else echo "Strings are not equal." fi]; then echo "Strings are equal." else echo "Strings are not equal." fiSpusťte skript a po zobrazení výzvy zadejte řetězce:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.Můžete také použít logické a
&&a nebo||porovnat řetězce:] && echo "Equal" || echo "Not equal"Zkontrolujte, zda řetězec obsahuje podřetězec
Existuje několik způsobů, jak zkontrolovat, zda řetězec obsahuje podřetězec.
Jedním přístupem je použití obklopení podřetězce hvězdičkami
*což znamená, že se shodují všechny znaky.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiSkript bude odrážet následující:
It's there.Další možností je použít operátor regex
=~jak je ukázáno níže:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiObdobí, za kterým následuje hvězdička
.*Odpovídá nule nebo více výskytům libovolného znaku kromě znaku nového řádku.Zkontrolujte, zda je řetězec prázdný
Poměrně často budete také muset zkontrolovat, zda je proměnná prázdný řetězec nebo ne. To lze provést pomocí operátorů
-na-z.#!/bin/bash VAR='' if]; then echo "String is empty." fiString is empty.#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fiPorovnání řetězců s operátorem případu
Namísto použití testovacích operátorů můžete také porovnat řetězce pomocí příkazu case:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esacLexikografické srovnání
Lexikografické srovnání je operace, kde jsou dva řetězce srovnávány abecedně porovnáváním znaků v řetězci postupně zleva doprava. Tento druh srovnání se používá jen zřídka.
Následující skripty lexikograficky porovnávají dva řetězce:
#!/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" fiSkript vydá následující:
Ubuntu is lexicographically greater than Linuxize.Závěr
Porovnání řetězce je jednou z nejzákladnějších a často používaných operací v Bash skriptování. Po přečtení tohoto tutoriálu byste měli dobře rozumět tomu, jak porovnat řetězce v Bash. Můžete si také přečíst našeho průvodce o zřetězení řetězců.
bash terminál
- Při
Jak porovnat dva dokumenty v MS Word 2007 nebo 2010
Naučte se, jak rychle porovnat dva dokumenty v MS Word 2007 nebo 2010.
Jak porovnat cpu, gpu a ssds před nákupem
Naučte se, jak porovnat CPU, GPU a SSD před nákupem. Pomůžeme vám správně se rozhodnout.
Bash zřetězené řetězce
Zřetězení řetězců je jen fantastické programovací slovo, které spojuje řetězce připojením jednoho řetězce na konec druhého řetězce. V tomto tutoriálu si vysvětlíme, jak zřetězit řetězce v Bash.







