Samouczek funkcji bash

Samouczek funkcji bash
Funkcja Bash to zbiór poleceń, które można wykonać wielokrotnie. Celem funkcji jest ułatwienie skryptów bashów i zapobieganie często pisaniu tego samego skryptu. Funkcje bash są znacznie ograniczone w porównaniu z funkcjami większości języków programowania. W przypadku wykonywania krok po kroku plik zawiera różne polecenia. Chociaż polecenia te można wprowadzić po prostu do wiersza poleceń, wygodniej jest zapisać wszystkie połączone polecenia dla danej operacji w jednym pliku z perspektywy ponownego użycia. Możemy użyć tego pliku do uruchomienia określonego zestawu poleceń, jednego czasu lub wielu razy, w zależności od naszych potrzeb. W tej lekcji przejdziemy przez podstawy funkcji BASH i pokażemy, jak je używać w scenariuszach powłoki.

Przykład 1

Funkcja to sekcja kodu, którą można nazwać kilkakrotnie do wykonywania określonych zadań w programowaniu. Długość kodu jest zmniejszona, a modułowość programu jest zapewniana. Najbardziej podstawowa ilustracja aplikacji funkcji w skryptowaniu bash jest pokazana następująco:

#!/bin/bash
Bashfunction ()
Echo Hello, moi przyjaciele Linux

Bashfunk

W poprzednim skrypcie zdefiniowaliśmy funkcję Bashfunk. W środku mamy oświadczenie Echo. Następnie wywołaliśmy funkcję Bashfunk Aby wykonać funkcję.

Wyjście podstawowej funkcji bash jest wydrukowane na terminalu:

Linuxhint@HP34: ~ $ chmod +x test.cii; ./test.cii
Witam, moi przyjaciele Linux
Linuxhint@HP34: ~ $

Przykład 2

Możemy przekazywać argumenty i przetwarzać dane z funkcjami BASH, jak w innych językach programowania. Podobnie jak przekazanie parametrów wiersza poleceń do skryptu BASH, możemy wprowadzić dane do funkcji. Musimy dodać parametry bezpośrednio po nazwie funkcji, aby podać dowolną liczbę argumentów do funkcji BASH. Podczas wywoływania funkcji możemy bezpośrednio przekazać argumenty i użyć wartości 1 USD, 2 USD,… $ n, aby uzyskać do nich dostęp do funkcji.

#!/bin/bash
multiply_two_numbers ()
Produkt lokalny = $ ((1 $*2 $))
Produkt echo 1 USD i 2 USD to produkt $

multiply_two_numbers 5 2

W poprzednim skrypcie stworzyliśmy funkcję multiply_two_numbers. W funkcji utworzyliśmy zmienną produkt i przypisał równanie produktu do obliczenia. Następnie polecenie ECHO jest używane do wydrukowania wyniku obliczeń dla iloczyn dwóch wartości. Następnie podaliśmy dwa argumenty, 5 i 2, przypisane do funkcji multiply_two_numbers.

Pociska terminala po wykonaniu skryptu jest pokazana na poniższym obrazku:

Linuxhint@HP34: ~ $ chmod +x test.cii; ./test.cii
Produkt 5 i 2 to 10
Linuxhint@HP34: ~ $

Przykład 3

Większość języków programowania obsługuje ideę funkcji zwracających wartość. Oznacza to, że funkcja musi zwrócić dane do miejsca, z którego się nazywane są. Funkcje bash nie obsługują zwracania wartości po ich wywołaniu, w przeciwieństwie do funkcji w prawdziwych językach programowania. Dają nam jednak opcję ustalenia statusu powrotu, który działa podobnie do statusu wyjścia używanego przez program lub polecenie do zakończenia.

Zmienna $? jest alokowany słowo powrót, które można zastosować do opisania obecnego stanu zwrotu. Funkcja zakończyła się instrukcją powrotu, która służy również jako status wyjścia dla funkcji.

#!/bin/bash
my_function ()
zwrot 14

my_function
echo zwrócona wartość to $?

W skrypcie najpierw ustanowiliśmy funkcję my_function. W funkcji mamy słowo kluczowe zwracające, które przyjmuje wartość 14. Następnie wywołaliśmy funkcję my_function, który ma instrukcję echo, która zwróci wartość do $?.

Wyświetlanie skryptu Bash Wartość określona do polecenia return w następujący sposób:

Linuxhint@HP34: ~ $ chmod +x test.cii; ./test.cii
Zwrócona wartość to 14
Linuxhint@HP34: ~ $

Przykład 4

W skrypcie zmienna globalna jest zmienną, do której można uzyskać dostęp z dowolnego miejsca i nie ma ograniczeń dotyczących jej zakresu. Nawet jeśli zmienna jest zadeklarowana w funkcji, jest automatycznie zdefiniowana jako zmienna globalna. Zmienne można również tworzyć lokalnie. Po ich przydzieleniu po raz pierwszy zmienne lokalne można określić wewnątrz ciała funkcyjnego za pomocą słowa kluczowego lokalny. Tylko ta funkcja pozwala uzyskać do nich dostęp. Tę samą nazwę można nadać zmienne lokalne utworzone w innych funkcjach.

#!/bin/bash
var1 = "cat"
Zwierzęce_names_fun ()
Local var2 = „pies”
var3 = "owce"
Echo „Nazwa pierwszego zwierzęcia to $ var1”
Echo „Nazwa drugiego zwierzęcia to $ var2”

Animal_names_fun
Echo „Nazwa pierwszego zwierzęcia to $ var1”
Echo „Nazwa pierwszego zwierzęcia to $ var2”
Echo „Nazwa pierwszego zwierzęcia to $ var3”

Skrypt Bash zaczyna się od deklaracji zmiennej globalnej var1 i inicjuje go z wartością łańcucha. Następnie stworzyliśmy funkcję Animal_names_fun. Do funkcji Animal_names_fun, Ustawiliśmy zmienną lokalną z lokalnymi słowami kluczowymi i jedną zmienną globalną. Zmienne lokalne i globalne zostały zdefiniowane z nazwami var2 I var3, I ustawiliśmy również ich wartości. Następnie powtórzyliśmy zmienną globalną var1 w funkcji i zmiennej lokalnej var2 w funkcji. Następnie nazwaliśmy funkcję Animal_names_fun i dostęp do globalnych zmiennych var1 I var3, które zwykle wykonują, ale gdy próbujemy uzyskać dostęp do zmiennej lokalnej Val2 poza określoną funkcją zwróci pustą wartość.

Możesz powiadomić wyjście o dostępie do zmiennych lokalnych i globalnych w programie BASH w następujący sposób:

Linuxhint@HP34: ~ $ chmod +x test.cii; ./test.cii
Nazwa pierwszego zwierzęcia to kot
Nazwa drugiego zwierzęcia to pies
Nazwa pierwszego zwierzęcia to kot
Nazwa pierwszego zwierzęcia jest
Imię pierwszego zwierzęcia to owca
Linuxhint@HP34: ~ $

Przykład 5

Nazywając funkcję tak samo, jak polecenie, które chcemy zastąpić, możemy zdecydować się na zastąpienie poleceń Bash. Na przykład musimy napisać funkcję o nazwie Echo Jeśli zamierzamy zastąpić polecenie echo.

Ta idea nadmiernego popierania poleceń Bash może być pomocna w niektórych okolicznościach, na przykład gdy chcemy użyć polecenia z określonymi opcjami. Ponadto istnieją sytuacje, w których nie chcemy powtarzać całego polecenia z opcjami w skrypcie. W takich sytuacjach możemy użyć opcji, aby zmienić wbudowane polecenie bash. Użyjmy przykładu, aby lepiej zrozumieć ideę nadrzędnych poleceń w scenariuszu powłoki bash:

#!/bin/bash
Echo ()
Zbudowany echo -n 'data +"[%m-%d%h:%m:%s]"' ': "
Zbudowany echo 1 USD

Echo „Witaj na moich blogach."

W poprzednim skrypcie Bash mamy echo funkcji. W ramach funkcji echa przekroczyliśmy polecenie echa i wstawiliśmy metodę wbudowaną znacznik czasu jako argument do polecenia echo.

Wyjście funkcji zastępowania Bash jest wyświetlane na następującym obrazie:

Linuxhint@HP34: ~ $ chmod +x test.cii; ./test.cii
[12-06 15:54:50]: Witamy w moich blogach.
Linuxhint@HP34: ~ $

Wniosek

Omówiliśmy funkcję bash na ten temat. Pres kodu wielokrotnego użytku wyraźnie utworzony dla danego zadania nazywa się funkcją bash. Po zdefiniowaniu można go użyć kilka razy w skrypcie. Bash angażuje się z systemem operacyjnym w celu wykonywania poleceń otrzymanych od powłoki po ich przeczytaniu. Jedną fantastyczną cechą Bash jest to, że pozwala on połączyć wiele jego poleceń i funkcji w jeden wykonywalny skrypt, który ułatwia uporządkowanie pracy.