Przewodnik dla początkujących do korzystania z funkcji Bash!
- 1027
- 13
- Igor Madej
Funkcje bash to przydatny sposób na grupę serii poleceń, których często używasz. Umożliwiają ponowne wykorzystanie kodu, sprawiają, że scenariusze są bardziej zorganizowane i łatwiejsze do odczytania, i oszczędzają czas, nie muszę pisać tych samych poleceń w kółko.
Aby utworzyć funkcję w Bash, użyj słowa kluczowego funkcji, a następnie nazwy funkcji i parę kręconych aparatów ortodontycznych, które zawierają polecenia, które składają się. Na przykład:
Funkcja powitania echo "Hello, świat!"123 | Funkcja powitania echo "Hello, świat!" |
To tworzy funkcję zwaną 'Powitanie' To po prostu wyświetla ciąg "Witaj świecie!" Kiedy jest nazywany.
Aby wywołać funkcję, po prostu wpisz jego nazwę w skrypcie powłoki. Na przykład:
Powitanie1 | Powitanie |
To wykona polecenia w obrębie 'Powitanie' funkcja, która w tym przypadku jest tylko poleceniem Echo.
Funkcja Bash z argumentami
Możesz także przekazać argumenty do funkcji, wymieniając je w nawiasach, gdy wywołujesz funkcję. Na przykład:
Funkcja powitanie echo "Hello, 1 $!„ powitanie„ John Doe ”12345 | Funkcja powitanie echo "Hello, 1 $!„ powitanie„ John Doe ” |
To będzie wyprowadzone „Witam, John Doe!" ponieważ „1 $” Zmienna w funkcji odnosi się do pierwszego argumentu przekazanego do funkcji (w tym przypadku „John Doe”). Możesz użyć 2 USD, 3 USD itd., Aby odnieść się do drugiego, trzeciego i kolejnych argumentów.
Możesz także określić wartości domyślne dla argumentów, jeśli nie są one dostarczone, gdy funkcja jest wywoływana. Na przykład:
Funkcja powitanie name = $ 1: -World echo "Hello, $ name!„ powitanie powitanie„ John ”1234567 | Funkcja powitanie name = $ 1: -World echo "Hello, $ name!„ powitanie powitanie„ John ” |
Pierwsze wezwanie do „pozdrowienia” wyniesie "Witaj świecie!" Ponieważ zmienna nazwy jest ustawiona na domyślną wartość „świata”, jeśli nie jest podany argument. Drugie wezwanie do „powitania” będzie wyprowadzone "Cześć John!" Ponieważ zmienna nazwy jest ustawiona na wartość pierwszego argumentu („John”).
Zdefiniuj typ argumentu za pomocą poleceń budowania
Używając 'ogłosić' polecenie zbudowane, możesz również określić typy argumentów, których oczekuje funkcja. Na przykład:
Funkcja Dodaj Declare -i Num1 = 1 $ DECLARE -i NUM2 = 2 $ Echo $ ((NUM1 + NUM2)) Dodaj 1 21234567 | Funkcja Dodaj Declare -i Num1 = 1 $ DECLARE -i NUM2 = 2 $ Echo $ ((NUM1 + NUM2)) Dodaj 1 2 |
Ta funkcja oczekuje dwóch argumentów liczb całkowitych i dodaje je razem za pomocą „$ ((…))” Składnia ekspansji arytmetycznej. „deklaruj -i” Flaga każe Bashowi traktować zmienne jako liczby całkowite.
Funkcje bash ze zmiennymi lokalnymi
Funkcje bash mają również zmienne lokalne, które są zmiennymi, które są widoczne tylko w funkcji i nie są dostępne poza nią. Aby utworzyć zmienną lokalną, używasz 'lokalny' Słowo kluczowe, a następnie nazwa zmiennej. Na przykład:
Funkcja Count Local I dla I in 1… 5; echo $, zrobiłem hrabia echo $ i123456789 | Funkcja Count Local I dla I in 1… 5; echo $, zrobiłem crainto $ i |
Funkcja liczby tworzy zmienną lokalną o nazwie 'I' który służy do liczenia od 1 do 5. Echo „$ i” instrukcja poza funkcją nic nie wyświetli, ponieważ 'I' Zmienna nie jest zdefiniowana poza funkcją.
Funkcja z wartościami powrotnymi
Możesz również zwrócić wartość z funkcji za pomocą 'powrót' polecenie wbudowane. Wartość polecenia return jest status wyjścia funkcji, która jest liczbą wskazującą, czy funkcja została pomyślnie ukończona, czy napotkana błąd. A 'powrót' wartość „0” Wskazuje sukces, podczas gdy wartość niezerowa wskazuje błąd.
Na przykład:
funkcja dodaj if [[$# -ne 2]]; Następnie zwróć 1 Fi Deklaruj -i Num1 = 1 $ Deklaruj -i num2 = 2 $ zwrot $ ((num1 + num2)) Dodaj 1 2 echo $? Dodaj 1 echo $?12345678910111213 | funkcja dodaj if [[$# -ne 2]]; Następnie zwróć 1 Fi Deklaruj -i Num1 = 1 $ Deklaruj -i Num2 = 2 $ Zwrot $ ((num1 + num2)) Dodaj 1 2echo $?Dodaj 1echo $? |
Dodaj kontrole funkcji, aby upewnić się, że otrzymał dokładnie dwa argumenty. Jeśli tak nie jest, zwraca wartość 1, aby wskazać błąd. W przeciwnym razie dodaje dwa argumenty razem i zwraca wynik.
Echo $?' polecenie po każdym wywołaniu funkcji dodawania wyświetli wartość zwracaną funkcji. Pierwsze połączenie wyniesie 3, a drugie połączenie wyniesie 1.
Drukuj wartości w funkcji
Oprócz wartości zwróconej możesz również użyć polecenia Echo, aby wydrukować wartość z funkcji. Na przykład:
funkcja dodaj if [[$# -ne 2]]; Następnie zwróć 1 Fi Deklaruj -i Num1 = 1 $ Deklaruj -i Num2 = 2 $ Echo $ ((num1 + num2)) wynik = $ (Dodaj 10 20) echo „Wynik to wynik $ wynik to $."1234567891011 | funkcja dodaj if [[$# -ne 2]]; Następnie zwróć 1 Fi Deklaruj -i Num1 = 1 $ Deklaruj -i Num2 = 2 $ Echo $ ((num1 + num2)) wynik = $ (Dodaj 10 20) echo „Wynik to wynik $ wynik to $." |
Ten kod zostanie wyprowadzony „Rezultat to 30." Ponieważ funkcja dodawania jest wywoływana za pomocą podstawienia polecenia (składnia $ (…)), a wynik jest przechowywany w zmiennej wyniku.
Funkcje bash mogą być bardzo potężne i są cennym narzędziem do organizowania i uproszczenia skryptów. Pozwalają na ponowne wykorzystanie kodu, uczynić scenariusze bardziej czytelne i zapisywać czas, nie muszę pisać tych samych poleceń w kółko.