Terminal vs. Bash vs. Command line vs. Prompt
Spisu treści:
- Operatory porównania
- Sprawdź, czy ciąg zawiera podciąg
- Sprawdź, czy ciąg znaków jest pusty
- Porównywanie ciągów z operatorem sprawy
- Porównanie leksykograficzne
- Wniosek
Podczas pisania skryptów Bash często będziesz musiał porównać dwa ciągi, aby sprawdzić, czy są one równe, czy nie. Dwa ciągi znaków są równe, jeśli mają tę samą długość i zawierają tę samą sekwencję znaków.
W tym samouczku opisano, jak porównać ciągi w Bash.
Operatory porównania
Operatory porównania to operatory, które porównują wartości i zwracają wartość prawda lub fałsz. Porównując ciągi w Bash, możesz użyć następujących operatorów:
-
string1 = string2
istring1 == string2
- Operator równości zwraca wartość true, jeśli argumenty są równe.- Użyj operatora
=
ztest
; then echo "Strings are equal." else echo "Strings are not equal." fi
; then echo "Strings are equal." else echo "Strings are not equal." fi
Kiedy skrypt zostanie wykonany, wydrukuje następujące dane wyjściowe.
Strings are equal.
Oto kolejny skrypt, który pobiera dane wejściowe od użytkownika i porównuje podane ciągi. W tym przykładzie użyjemy
]; then echo "Strings are equal." else echo "Strings are not equal." fi
]; then echo "Strings are equal." else echo "Strings are not equal." fi
Uruchom skrypt i wprowadź ciągi znaków, gdy pojawi się monit:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.
Możesz także użyć logicznego i
&&
i lub||
porównać ciągi znaków:] && echo "Equal" || echo "Not equal"
Sprawdź, czy ciąg zawiera podciąg
Istnieje wiele sposobów sprawdzenia, czy ciąg zawiera podciąg.
Jednym z podejść jest użycie otaczania podciągów symbolami gwiazdki
*
co oznacza dopasowanie wszystkich znaków.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
Skrypt wyświetli następujące echo:
It's there.
Inną opcją jest użycie operatora wyrażenia regularnego
=~
jak pokazano poniżej:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
Kropka, po której następuje gwiazdka
.*
Odpowiada zeru lub większej liczbie wystąpień dowolnego znaku oprócz znaku nowej linii.Sprawdź, czy ciąg znaków jest pusty
Dość często trzeba będzie również sprawdzić, czy zmienna jest pustym łańcuchem, czy nie. Możesz to zrobić za pomocą operatorów
-n
i-z
.#!/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
Porównywanie ciągów z operatorem sprawy
Zamiast używać operatorów testowych, możesz również użyć instrukcji case do porównania ciągów:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac
Porównanie leksykograficzne
Porównanie leksykograficzne to operacja polegająca na porównywaniu dwóch ciągów alfabetycznych poprzez porównywanie znaków w ciągu kolejno od lewej do prawej. Tego rodzaju porównanie jest rzadko używane.
Poniższe skrypty porównują dwa ciągi leksykograficzne:
#!/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
Skrypt wyświetli następujące informacje:
Ubuntu is lexicographically greater than Linuxize.
Wniosek
Porównywanie łańcucha jest jedną z najbardziej podstawowych i często używanych operacji w skryptach Bash. Po przeczytaniu tego samouczka powinieneś dobrze zrozumieć, jak porównywać ciągi w Bash. Możesz także sprawdzić nasz przewodnik na temat łączenia łańcuchów.
terminal bash
- Użyj operatora
Jak porównać dwa dokumenty w ms word 2007 lub 2010
Dowiedz się, jak szybko porównać dwa dokumenty w MS Word 2007 lub 2010.
Jak porównać cpu, gpu i ssds przed zakupem
Dowiedz się, jak porównać procesor, procesor graficzny i dyski SSD przed zakupem. Pomagamy Ci dokonać właściwego wyboru.
Jak przekonwertować ciągi na liczby całkowite w pythonie
Często podczas pisania kodu w języku Python konieczna jest konwersja jednego typu danych na inny. W Pythonie można przekonwertować ciąg znaków na liczbę całkowitą za pomocą wbudowanej funkcji int ().