Instrukcja „if” w Bash może być używana z różnymi parametrami do wielu celów to. Za każdym razem, gdy pracujemy z napisami w Bash, bardzo ważne jest, abyśmy sprawdzili, czy napis jest pusty czy nie, aby nie powodował żadnych problemów w wykonaniu naszego programu. Zarówno flagi „-z”, jak i „-n” mogą być używane z instrukcją „if” do testowania ciągów, a my wyjaśnimy, jak można to zrobić w dzisiejszym artykule.
Uwaga: Linux Mint 20 służy do testowania poniższych przykładów.
Metoda używania basha „if -z” i „if -n” do testowania ciągów
Aby wyjaśnić użycie Bash „if -z” i „if -n” do testowania ciągów, chcielibyśmy podzielić się z wami następującymi przykładowymi scenariuszami.
Przykład nr 1: Użycie „if -n” do pokazania, że ciąg ma wartość Null
Aby pokazać, że ciąg w Bash jest pusty, używając instrukcji „if -n”, wykonamy następujące kroki:
Najpierw utworzymy plik Bash w naszym katalogu domowym o nazwie Strings.sh, jak pokazano na poniższym obrazku:
Po utworzeniu tego pliku wpiszemy w naszym pliku skrypt pokazany na poniższym obrazku. Jak każdy skrypt Bash, pierwsza linia, i,.mi. „#!/bin/bash” jest obowiązkowe. Następnie zadeklarowaliśmy pusty ciąg o nazwie „name”. Ciąg pusty w Bash można zadeklarować, wyrównując zmienną do „”. Następnie mamy instrukcję „if”, po której następuje flaga „-n”, która zwraca prawdę, jeśli ciąg nie jest pusty. Użyliśmy tej flagi do przetestowania naszego ciągu „name”, który ma wartość null. Oznacza to, że warunek „if” nie zostanie wykonany, ponieważ wartość flagi „-n” będzie w tym przypadku fałszem. W związku z tym mamy również „inną” część, która zostanie wykonana poprzez wydrukowanie wiadomości na terminalu.
Teraz nadszedł czas na wykonanie tego pliku, co można zrobić za pomocą polecenia pokazanego poniżej:
$ bash Struny.cii
Ponieważ zadeklarowany przez nas ciąg był null, dlatego część „else” naszego skryptu została wykonana, a odpowiedni komunikat został wydrukowany na terminalu, jak pokazano na poniższym obrazku:
Przykład nr 2: Użycie „if -n” do pokazania, że ciąg nie jest pusty
Aby pokazać, że łańcuch w Bash nie jest pusty przy użyciu instrukcji „if -n”, wykonamy następujące kroki:
W naszym pliku Bash wpiszemy następujący skrypt. Jedyną zmianą, jaką wprowadziliśmy w skrypcie, który utworzyliśmy powyżej dla tego scenariusza, jest to, że tym razem przypisaliśmy ciągowi „name” prawidłową nazwę. Oznacza to, że tym razem nasz ciąg nie jest pusty, co oznacza, że część skryptu „if” powinna zostać wykonana.
Teraz uruchom skrypt jeszcze raz, a zauważysz, że nasz zmodyfikowany skrypt działa tak, jak chcieliśmy, wykonując tym razem część skryptu „jeśli”, jak pokazano na poniższym obrazku:
Przykład nr 3: Użycie „if -z” do pokazania, że ciąg nie jest pusty
Aby pokazać, że łańcuch w Bash nie jest pusty, używając instrukcji „if -z”, wykonamy następujące kroki:
Skrypt dla tego scenariusza jest prawie taki sam jak dla scenariusza omówionego powyżej. Zamieniliśmy tylko flagę „-n” na flagę „-z”, ale tym razem zamieniliśmy również części skryptu „if” i „else”, ponieważ flaga „-z” zwraca prawdę, jeśli ciąg jest zerowe. Oznacza to, że tym razem „inna” część skryptu zostanie wykonana, ponieważ nasz ciąg nie był pusty.
Możesz to sprawdzić, uruchamiając skrypt, który właśnie zmodyfikowałeś, a zobaczysz, że Twój ciąg nie jest pusty, jak pokazano na poniższym obrazku:
Przykład nr 4: Użycie „if -z” do pokazania, że ciąg ma wartość Null
Aby pokazać, że ciąg w Bash jest pusty, używając instrukcji „if -z”, wykonamy następujące kroki:
W tym scenariuszu użyliśmy tego samego skryptu, co w przykładzie nr 3. Jedyną zmianą, jaką wprowadziliśmy w tym skrypcie, jest to, że ustawiliśmy nasz ciąg znaków na null, przypisując mu wartość null, jak widać na poniższym obrazku:
Teraz, gdy uruchomimy ten skrypt, część „if” skryptu zostanie wykonana, ponieważ ciąg jest pusty, a zatem wartość flagi „-z” będzie prawdziwa, jak widać na poniższym obrazku:
Przykład nr 5: Pobieranie ciągu znaków wejściowych użytkownika i testowanie go za pomocą „if -z”
W celu przetestowania wprowadzonego przez użytkownika ciągu znaków z instrukcją „if -z” wykonamy następujące kroki:
Skrypt pokazany na obrazku poniżej skopiujemy do naszego pliku Bash. Tutaj prosimy użytkownika o wprowadzenie ciągu, a następnie zapisujemy ten ciąg w zmiennej „string” za pomocą polecenia „read”. Następnie testujemy ten ciąg za pomocą instrukcji „if -z”, która zostanie wykonana, jeśli ciąg ma wartość null. Jeśli tak się stanie, ten skrypt poprosi użytkownika o wprowadzenie prawidłowego ciągu, a następnie wypisze ten ciąg. Jeśli jednak użytkownik po raz pierwszy wprowadzi poprawny ciąg, zostanie wykonana „inna” część skryptu.
Po uruchomieniu tego skryptu Bash, gdy zostaliśmy poproszeni o wprowadzenie ciągu, celowo wprowadziliśmy ciąg pusty, i.mi., po prostu nacisnęliśmy klawisz Enter. Dlatego nasz terminal poprosił nas o wprowadzenie prawidłowego ciągu znaków, jak pokazano na poniższym obrazku:
Tym razem wprowadziliśmy prawidłowy ciąg „cześć”, a zatem terminal wydrukował odpowiedni komunikat, jak pokazano na poniższym obrazku:
Wniosek
Ten artykuł nauczył Cię wszystkich różnych metod, za pomocą których możesz przetestować swoje ciągi pod kątem wartości null lub nie, używając flag „-z” i „-n” z instrukcją „if”. Używając tych flag, możemy testować dowolne ciągi, a tym samym bardzo wydajnie używać ich w naszych skryptach.