Jak sprawdzić liczbę argumentów w Bash?

Jak sprawdzić liczbę argumentów w Bash?

Możesz podać dowolną żądaną liczbę argumentów wiersza poleceń do swoich scenariuszy Bash w Ubuntu 20.04 podczas ich wykonania. Czasami jednak skrypty są napisane w taki dynamiczny sposób, że nawet programista nie wie dokładnie, ile argumentów będzie dostarczanych przez użytkownika w czasie wykonywania, ale może chcieć użyć tej liczby całkowitej gdzieś później w tym skrypcie.

W tej sytuacji musi istnieć sposób, przez który można sprawdzić całkowitą liczbę argumentów przekazanych do dowolnego konkretnego skryptu Bash. W tym celu Bash ma specjalną zmienną, i.mi., $#. Aby dowiedzieć się, jak działa ta specjalna zmienna, będziesz musiał przejść przez wszystkie przykłady udostępnione w tym artykule.

Metoda sprawdzania liczby argumentów w Bash w Ubuntu 20.04:

Do wyjaśnienia metody sprawdzania liczby argumentów podanych do skryptu Bash w Ubuntu 20.04, zaprojektowaliśmy kilka przykładów omówionych poniżej:

Przykład nr 1: Drukowanie całkowitej liczby argumentów w Bash:

Aby po prostu wydrukować całkowitą liczbę argumentów przekazanych do skryptu Bash w Ubuntu 20.04, możesz napisać skrypt bash, jak ten pokazany na poniższym obrazku:

Zmienna specjalna $# zawsze zawiera całkowitą liczbę argumentów przekazywanych do dowolnego konkretnego skryptu BASH.

Aby przetestować ten skrypt, wykonaliśmy go z trzema argumentami lub parametrami w następujący sposób:

Argumenty $ bash.sh 1 2 3

Tutaj argumenty.SH to nazwa naszego pliku skryptu Bash, podczas gdy 1, 2 i 3 to argumenty, które przekazaliśmy temu skryptowi Bash. Oznacza to, że całkowita liczba argumentów w tym przypadku testowym wynosi „3”. Spróbujmy dowiedzieć się, czy ten skrypt bash poprawnie wyświetlił całkowitą liczbę argumentów, czy nie.

Kiedy wykonamy ten skrypt bash, wyświetli on całkowitą liczbę przekazanych do niego argumentów, co można zobaczyć na podstawie obrazu pokazanego poniżej:

Przykład nr 2: Drukowanie całkowitej liczby argumentów wraz z wartościami argumentów z parametrami pozycji w Bash:

Teraz napiszemy skrypt bash, który wydrukuje wartości argumentów przekazywanych do skryptu Bash i ich całkowitej liczby. Za to, skrypt bash jest następujący:

W tym skrypcie Bash najpierw wydrukowaliśmy wartości trzech parametrów pozycji. Oznacza to, że jakiekolwiek argumenty zostaną przekazane do tego skryptu Bash z terminala, będą przechowywane w tych trzech parametrach pozycyjnych. Następnie po prostu wydrukowaliśmy wartość zmiennej $#.

W naszym pierwszym przykładzie wykonamy ten skrypt z tymi samymi argumentami, co przekazaliśmy skryptowi bashowi. Tym razem, gdy wykonamy nasz skrypt bash, wartości trzech przekazanych argumentów zostaną również wyświetlone na terminalu wraz z ich całkowitą liczbą, jak widać na obrazie pokazanym poniżej:

Przykład nr 3: Drukowanie całkowitej liczby argumentów wraz z wartościami argumentów ze zmienną $@ w Bash:

Cel tego przykładu jest taki sam jak w naszym drugim przykładzie; Jednak w tym przykładzie będziemy używać innej specjalnej zmiennej, i.mi., $@, do drukowania wartości przekazanych argumentów. Zasadniczo zmienna $@ może pomieścić wszystkie argumenty przekazywane do skryptu Bash. Aby to zrozumieć, możesz spojrzeć na następujący skrypt Bash, który zaprojektowaliśmy dla Ciebie:

W tym skrypcie Bash po prostu wydrukowaliśmy wartość zmiennej $@, i.mi., Wszystkie przekazane argumenty i wartość $## Special Variable, i.mi., Całkowita liczba przekazanych argumentów na terminalu.

Aby zobaczyć, jak działa ten zmodyfikowany skrypt BASH, ponownie wykonaliśmy go z tymi samymi parametrami, jak w dwóch powyższych przykładach. Kiedy ten skrypt został wykonany, dane wyjściowe okazało się dokładnie takie samo, jak w naszym drugim przykładzie.

Przykład nr 4: Drukowanie całkowitej liczby argumentów wraz z wartościami argumentów ze specjalną zmienną $* w Bash:

To kolejna zmodyfikowana wersja naszego drugiego przykładu, ponieważ w tym przykładzie będziemy używać zmiennej specjalnej $* do wydrukowania wartości przekazanych argumentów na terminalu. Podobnie jak zmienna $@, zmienna specjalna $* może również przechowywać wartości wszystkich przekazanych argumentów do dowolnego konkretnego skryptu Bash. Zmodyfikowany skrypt bash pokazano na poniższym obrazku:

W tym skrypcie Bash po prostu wydrukowaliśmy wartość zmiennej $*, i.mi., Wszystkie przekazane argumenty i wartość $## Special Variable, i.mi., Całkowita liczba przekazanych argumentów na terminalu.

Aby przetestować ten skrypt bash i wizualizować jego dane wyjściowe, wykonaliśmy go z tymi samymi parametrami, jak w naszych pierwszych trzech przykładach. Tym razem również, gdy wykonano nasz skrypt BASH, jego dane wyjściowe było takie same jak w naszych drugich i trzecich przykładach, jak widać z następującego obrazu:

Przykład nr 5: Umieszczenie limitu całkowitej liczby argumentów w Bash:

Wreszcie, zmienna specjalna $# można również użyć do ograniczenia całkowitej liczby argumentów przekazanych do skryptu Bash w Ubuntu 20.04. Aby zrozumieć to zjawisko, będziesz musiał przejść przez skrypt bash pokazany na poniższym obrazku:

W tym skrypcie Bash mamy instrukcję „If”, która jest zastosowana do $# Special Variable. Chcieliśmy ograniczyć liczbę argumentów do „3”. Jeśli argumenty będą mniejsze niż „3”, komunikat o błędzie zostanie wydrukowany na terminalu. Podobnie, jeśli argumenty będą większe niż „3”, ponownie komunikat o błędzie zostanie wydrukowany na terminalu. Jeśli jednak podane argumenty będą równe „3”, tylko wartości tych argumentów zostaną wydrukowane na terminalu.

Chcieliśmy przetestować wszystkie trzy warunki tego skryptu Bash. W tym celu najpierw wykonaliśmy ten skrypt z trzema parametrami, a odpowiednie dane wyjściowe pokazano na poniższym obrazie:

Następnie wykonaliśmy ten skrypt bash z czterema argumentami, ponieważ na terminalu wydrukowano komunikat o błędzie, jak pokazano na poniższym obrazku:

Wreszcie, wykonaliśmy ten skrypt bash z dwoma argumentami, z powodu którego ponownie wydrukowano komunikat o błędzie na terminalu, jak pokazano na poniższym obrazku:

Wniosek:

Zmienna specjalna $# pozwoli Ci bardzo łatwo znaleźć całkowitą liczbę argumentów przekazywanych do dowolnego skryptu Bash. Sprawdzając przykłady udostępnione w tym artykule, miałbyś jasny pomysł na działanie tej specjalnej zmiennej. Dlatego możesz teraz napisać takie scenariusze Bash bez żadnych obaw, które w jakiś sposób wykorzystują całkowitą liczbę dostarczonych argumentów dla tych scenariuszy Bash w czasie wykonywania na Ubuntu 20.04.