Przewodnik dla początkujących w BASH - porównywanie rzeczy
W poprzedniej części samouczka BASH przyjrzeliśmy się instrukcjom warunkowym.
Ten przewodnik był bardzo długi, ale tak naprawdę pokazał jedynie, jak kontrolować przepływ logiki. Ten przewodnik pokazuje różne sposoby porównywania zmiennych.
Powyższe zdjęcie pokazuje pierwszy przykład z przewodnika z tego tygodnia:
#! / bin / bashname1 = "gary"name2 = "Bob"jeśli "$ nazwa1" = "$ nazwa2"następnie echo "dopasowanie nazw"jeszcze echo "nazwy nie pasują"fiW powyższym skrypcie zdefiniowałem dwie zmienne o nazwie name1 i name2 i przypisałem im wartości "gary" i "bob". Ponieważ zmienne są zawarte między znakami cudzysłowu, są nazywane zmiennymi łańcuchowymi, które stają się bardziej istotne w trakcie samouczka. Wszystko, co robi skrypt, to porównywanie wartości $ name1 i $ name2 i jeśli odpowiadają wynikowi, ciąg "pasuje do nazwy" i jeśli nie wypisuje łańcucha "nazwy nie pasują". Znaki cudzysłowu wokół zmiennych $ name1 i $ name2 są ważne, ponieważ jeśli żadna z nich nie zostanie ustawiona, skrypt nadal będzie działał. Na przykład, jeśli $ name1 nigdy nie było ustawione, to porównałbyś "" z "Bobem". Bez cudzysłowów pozostaniesz z = "bob", który wyraźnie zawodzi. Możesz także użyć notacji! =, Aby zdefiniować nie równe: W powyższym przykładzie test porównuje te same dwa ciągi i pyta, czy pytanie nie pojawia się przed alfabetem? Oczywiście odpowiedź brzmi: nie. Skrypt wprowadza mniej niż operator (<). Jako że mniej niż operator jest również używany do przekierowania, musisz uciec przed nim ukośnikiem (), aby znaczył mniej, dlatego w powyższym skrypcie porównałem "$ nazwa1" <"$ nazwa2". Przeciwieństwo mniej niż jest oczywiście większe niż. Zamiast używać <użyj >. Na przykład Jeśli chcesz przetestować, czy zmienna ma wartość, możesz użyć następującego testu: W powyższym skrypcie przetestowałem, czy $ name2 otrzymało wartość, a jeśli nie ma komunikatu "Nie ma boba, nigdy nie pojawił się bob". W poprzednim slajdzie omówiliśmy, czy zmienna została ustawiona czy nie. Czasami zmienna może być ustawiona, ale może nie mieć wartości. Na przykład: Aby sprawdzić, czy zmienna ma wartość, czy nie (tj. Ma długość zero), użyj -z w następujący sposób: W powyższym skrypcie ustawiłem $ name1 na łańcuch o zerowej długości, a następnie porównałem go za pomocą -z. Jeśli $ name1 ma długość równą zeru, wyświetli się komunikat "Gary wyszedł na wieczór". Jak dotąd wszystkie porównania dotyczyły łańcuchów. A co z porównywaniem liczb? Powyższy skrypt pokazuje przykład porównania dwóch liczb: Aby ustawić zmienną na liczbę, wystarczy ustawić ją bez cudzysłowu. Następnie możesz porównać liczby ze znakiem równości. Wolę jednak użyć następującego operatora, aby porównać dwie liczby: Jeśli chcesz porównać, czy liczba jest mniejsza od innej, możesz użyć operatora less (<). Podobnie jak w przypadku ciągów, musisz uciec mniej niż operator ukośnikiem. ( <). Lepszym sposobem porównywania liczb jest użycie następującej notacji: Na przykład: Na koniec dla tego przewodnika, jeśli chcesz przetestować, czy dwie liczby są różne, możesz użyć operatorów mniejszych i większych niż razem (<>) lub -ne w następujący sposób: Jeśli przegapiłeś pierwsze trzy części tego przewodnika, możesz je znaleźć, klikając następujące linki: W następnej części przewodnika omówię arytmetykę. Przewodnik dla początkujących do BASH - porównywanie łańcuchów
Przewodnik dla początkujących do BASH - porównywanie łańcuchów
Przewodnik dla początkujących do BASH - porównywanie łańcuchów
Przewodnik dla początkujących w BASH - porównywanie liczb
Przewodnik dla początkujących w BASH - porównywanie liczb
Przewodnik dla początkujących w BASH - porównywanie liczb
Przewodnik dla początkujących w BASH - Operatory porównania - Podsumowanie