Sprawdź, czy zmienna zawiera liczbę w Bash
- 4788
- 996
- Tomasz Szatkowski
Liczba to kombinacja 0-9 cyfr-zmienne bash przechowuje całą wartość w postaci strun. Nawet jeśli przechowywana wartość jest w formacie ciągów, możemy wykonać wszystkie operacje arytmetyczne, jeśli wartość przechowywana jest ważną liczbą. Jako najlepsza praktyka, powinniśmy zweryfikować wartości zmiennych przed wykonaniem operacji arytmetycznych.
Liczba może być liczbą całkowitą, liczbą zmiennoprzecinkową lub liczbą dodatnią/ujemną, która prefiksuje symbol „+ i -”. W tym samouczku omówiliśmy kilka metod weryfikacji, że zmienna zawiera tylko cyfry, liczby całkowite i podwójne lub pływakowe, a nie alfabety.
Używanie operatora równego Tilde (= ~)
Wyrażenie regularne jest szybkim i łatwym sposobem sprawdzania, czy wartość to liczba. W skryptach Bash, równa tylda (= ~)
Operator służy do porównania wartości z wyrażeniem regularnym. Można to użyć z instrukcją IF Bash:
12345678910 | #!/usr/bin/env bash# skrypt powłoki, aby sprawdzić, czy numer wejściowy jest liczbą całkowitą odczyt -p „Wprowadź numer:” var, jeśli [[$ var = ~ ^[0-9]+$]]; Następnie echo "$ var to liczba" else echo "$ var nie jest liczbą„ fi ”fi |
Napisz powyższy fragment w skrypcie powłoki i wykonaj. Po raz pierwszy wprowadzić numer wartości.
Pierwszy bieg, wprowadź numer: 12 12 to numer
Ponownie uruchom skrypt z niektórymi alfabetami i sprawdź wyjście:
Drugi bieg, wprowadź numer: 1A2B 12A nie jest liczbą
Sprawdź, czy liczba punktów pływających
Numer punktu pływającego to typ liczby całkowitej, który reprezentuje liczbę, która może pomieścić część ułamkową (znaną również jako pływak). Jak sama nazwa wskazuje, liczby te mogą przyjmować różne wartości w różnych miejscach i czasach. Liczby zmiennoprzecinkowych są zwykle używane do reprezentowania liczb z punktem dziesiętnym. Na przykład 1.0, 0.6 i 10.26 to wszystkie liczby zmiennoprzecinkowe.
Napisz nowy skrypt powłoki, który uważa liczbę punktów zmiennoprzecinkowych za prawidłowy numer.
#!/usr/bin/env bash # skrypt powłoki, aby sprawdzić, czy numer wejściowy jest numerem #, który może być liczbą liczbą całkowitą lub liczbą zmiennoprzecinkowego odczyt -p „Wprowadź numer:” var, jeśli [[$ var = ~ ^[0 -9]+([.] [0-9]+)?$]]; Następnie echo "$ var to liczba" else echo "$ var nie jest liczbą„ fi ”fi1234567891011 | #!/usr/bin/env bash# skrypt powłoki, aby sprawdzić, czy numer wejściowy jest numerem#, który może być liczbą liczbową lub liczbą zmiennoprzecinkową odczyt -p „Wprowadź numer:” var, jeśli [[$ var = ~ ^[0 -9]+([.] [0-9]+)?$]]; Następnie echo "$ var to liczba" else echo "$ var nie jest liczbą„ fi ”fi |
Wykonaj powyższy skrypt, wprowadzając niektóre liczby zmiennoprzecinkowych. Ten skrypt uzna wszystkie liczby zmiennoprzecinkowych za prawidłowe liczby.
Pierwszy bieg, wprowadź numer: 12.10 12.10 to liczba
Za pomocą instrukcji przełącznika
Niektóre skrypty wymagane do posiadania oświadczenia o sprawie. Jest to podobne do instrukcji przełączników w innych językach programowania. Możemy również użyć wyrażeń regularnych w przypadku opcji instrukcji i sprawdzić, czy podane dane wejściowe jest liczbą.
#!/usr/bin/env bash # skrypt powłoki, aby sprawdzić, czy numer wejściowy jest numerem # za pomocą instrukcji przełącznika odczyt -p -p „Wprowadź numer:„ var case $ varin ”|*[!0-9]*) echo „$ var nie jest liczbą” ;; *) echo „$ var to liczba” ;; esac12345678910 | #!/usr/bin/env bash# skrypt powłoki, aby sprawdzić, czy numer wejściowy jest numerem# za pomocą instrukcji przełącznika odczyt -p -p „Wprowadź numer:„ var case $ varin ”|*[!0-9]*) echo „$ var nie jest liczbą” ;; *) echo „$ var to liczba” ;; esac |
Wykonaj powyższy skrypt wiele razy z różnymi wejściami i zobacz wyniki:
Pierwszy bieg, wprowadź numer: 12 12 to numer
Sprawdź, czy numer zawiera +/-
Oznaki
W powyższych metodach sprawdziliśmy wartości liczb całkowitych zawierających tylko 0-9 cyfr, liczbę punktów zmiennoprzecinkowych, która zawiera również ułamek wartości znanych jako liczby dziesiętne. W niektórych przypadkach liczba może być również pozytywna lub ujemna. Dowolny numer bez prefiksu lub z +
jest liczbą dodatnią. Liczba z -
Prefiks jest liczbą ujemną.
Zaktualizuj wyrażenie regularne, aby wziąć pod uwagę liczbę, która ma +/-
śpiewa przed nim.
1234567891011 | #!/usr/bin/env bash# skrypt powłoki, aby sprawdzić, czy numer wejściowy jest liczbą# i może być dodatnią lub ujemną liczbą odczyt -p „Proszę wprowadź numer:” var, jeśli [[$ var = ~ ^[+ - ]?[0-9]+$]]; Następnie echo "$ var to liczba" else echo "$ var nie jest liczbą„ fi ”fi |
Uruchom powyższy skrypt z różnymi 2 wejściami i sprawdź wyniki.
Pierwszy uruchomienie Wprowadź numer: 12 12 To numer drugi Uruchom, wprowadź numer: -12 -12 to numer trzeci Uruchom, wprowadź numer: +12 +12 to numer
Sprawdź, czy liczba jest pozytywna lub negatywna
Podczas wykonywania operacji arytmetycznych w skryptach BASH należy zweryfikować wartości wejściowe. Poniższy skrypt powłoki pomoże Ci sprawdzić, czy numer wejściowy jest liczbą dodatnią lub liczbą ujemną.
#!/usr/bin/env bash # skrypt powłoki, aby sprawdzić, czy numer wejściowy # jest numerem dodatnim lub liczbą ujemną odczyt -p „Proszę wprowadź numer:” var ## Sprawdź, czy wejście jest prawidłowym numerem, jeśli [[$ var = ~ ^[+,-]?[0-9]+$]]; Następnie ## Sprawdź, czy wejście jest liczbą dodatnią lub ujemną, jeśli [[$ var = ~ ^[-] [0-9]+$]]; wtedy echo "$ var jest liczbą ujemną" else echo "$ var jest liczbą dodatnią„ fi else echo ”$ var to nie liczba„ fi ”fi1234567891011121314151617 | #!/usr/bin/env bash# skrypt powłoki, aby sprawdzić, czy numer wejściowy# jest numerem dodatnim lub liczbą ujemną odczyt -p „Proszę wprowadź numer:” var ## Sprawdź, czy wejście jest prawidłowym numerem [[$ var = ~ ^[+,-]?[0-9]+$]]; Następnie ## Sprawdź, czy wejście jest liczbą dodatnią lub ujemną, jeśli [[$ var = ~ ^[-] [0-9]+$]]; Następnie echo "$ var jest liczbą ujemną" else echo "$ var jest liczbą dodatnią" fielse echo "$ var nie jest liczbą„ fi ”fi |
Uruchom powyższy skrypt z liczbami dodatnimi i ujemnymi. Następnie sprawdź wyniki.
Pierwszy uruchomienie Wprowadź numer: 12 12 Jest dodatnim numerem drugi uruchomienie Wprowadź numer: -12-12 to numer ujemny trzeci uruchomienie, wprowadź numer: +12 +12
Wniosek
Liczba to zbiór cyfr od 0 do 9. Dowolna liczba może być liczbą dodatnią lub ujemną. Liczba może być liczbą liczbową lub pływającą. Ten samouczek pomógł sprawdzić, czy dana wartość jest liczbą, czy nie w scenariuszu Bash.
- « Odkryj siłę instalowania Dockera i używanie Dockera na Ubuntu i Debian!
- Tworzenie katalogu w HDFS i plikach kopiowania (Hadoop) »