Użycie opcjonalnego argumentu i wartości domyślnej w funkcji BASH

Użycie opcjonalnego argumentu i wartości domyślnej w funkcji BASH
Funkcja jest istotną częścią każdego języka programowania, który zawiera blok kodu. Ten sam kod można wykonać wiele razy, wywołując funkcję, a wymaganie do pisania tego samego kodu można uniknąć za pomocą funkcji. Funkcję można zdefiniować bez argumentu i argument. Argument funkcji może być obowiązkowy i opcjonalny. Wartość domyślną można ustawić dla argumentu funkcji BASH. Sposoby zadeklarowania opcjonalnego argumentu i użycia wartości domyślnych w funkcji BASH pokazano w tym samouczku.

Przykład-1: oblicz sumę za pomocą opcjonalnych argumentów

Sposób zdefiniowania opcjonalnych argumentów z wartościami domyślnymi jest pokazany w tym przykładzie. Utwórz plik bash z następującym skryptem, aby obliczyć sumę dwóch liczb. W skrypcie funkcja o nazwie sum () zawiera dwa opcjonalne argumenty z wartościami domyślnymi. Jeśli podczas wywoływania funkcji nie zostanie podane żadne argument, suma wartości domyślnych zostanie obliczona. Jeśli podczas wywoływania funkcji podano jeden argument, suma wartości argumentu i druga wartość domyślna zostanie obliczona. Jeśli w momencie wywołania funkcji podane są dwa argumenty, zostanie obliczona suma wartości argumentu. Następnie funkcja wywołała bez żadnych argumentów, z jednym argumentem i dwoma argumentami.

#!/bin/bash
#Declare Funkcja z obowiązkowym i opcjonalnym argumentem
funkcjaSum ()

#Ustaw wartości
num1 = $ 1: -10
num2 = $ 2: -20
#Return prawda, jeśli nie podano żadnego argumentu
jeśli [$# -lt1]; Następnie
echo „Opcjonalne wartości argumentów to: $ num1, $ num2."
#Return prawda, jeśli podano jeden argument
elif [$# -lt2]; Następnie
#Add Nowa linia
Echo
echo „Opcjonalna wartość argumentu to: $ NUM2."
w przeciwnym razie
#Add Nowa linia
Echo
echo „Nie ma opcjonalnego argumentu."
NUM1 = 1 USD
NUM2 = 2 USD
fi
#Uzupełnij sumę dwóch liczb
sum = $ ((num1+num2))
Echo „Suma $ Num1 i $ NUM2 to $ sum”

#Funkcja Bez żadnego argumentu
suma
#Funkcja z jednym argumentem
Sum 40
#Funkcja z dwoma argumentami
Sum 70 30

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Gdy funkcja została wywołana bez żadnego argumentu, wydrukowano sumę dwóch wartości domyślnych, że 30 (10+20). Gdy funkcja została wywołana jednym argumentem, suma wartości argumentu (40) i druga wartość domyślna (20) jest wydrukowana, która wynosi 60. Kiedy funkcja została wywołana dwoma argumentami, suma dwóch wartości argumentów wydrukowała 100 (70+30).

Przykład-2: Uwierzytelnij użytkownika za pomocą użytkownika

Wartości domyślne
Utwórz plik bash z następującym skryptem, aby uwierzytelnić użytkownika za pomocą domyślnej nazwy użytkownika i hasła, gdy funkcja jest wywoływana bez żadnego argumentu. Funkcja o nazwie Authentiate () zawiera dwa opcjonalne argumenty z domyślną nazwą użytkownika i hasłem. Gdy ta funkcja zostanie wywołana bez żadnego argumentu, wartości domyślne zostaną użyte do uwierzytelnienia użytkownika, a komunikat o logowaniu gościa zostanie wydrukowany. Gdy ta funkcja zostanie wywołana za pomocą prawidłowej nazwy użytkownika i hasła, zostanie wydrukowany komunikat o logowaniu administratora. Gdy ta funkcja zostanie wywołana za pomocą nieprawidłowej nazwy użytkownika i hasła, komunikat o błędzie zostanie wydrukowany.

#!/bin/bash
#Declare Funkcja do uwierzytelnienia
funkcjonalność ()

#Ustaw wartości
nazwa użytkownika = $ 1: -GUEST
hasło = $ 2: -12345
#Return prawda, jeśli nie podano żadnego argumentu
jeśli [[$ UserName == 'admin' && $ hasło == 'secret']]; Następnie
echo „Zalogowałeś się jako administrator."
#Return prawda, jeśli podano jeden argument
elif [[$ UserName == 'guest' && $ hasło == '12345']]; Następnie
echo „Zalogowałeś się jako gość."
w przeciwnym razie
echo „Nieprawidłowa nazwa użytkownika i hasło."
fi

#Funkcja Bez żadnego argumentu
Uwierzytelniać
#Funkcja z prawidłową nazwą użytkownika i hasłem
Uwierzytelniono sekret administratora
#Funkcja z niepoprawną nazwą użytkownika i hasłem
Uwierzytelnij Fahmida 1234

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Przykład-3: Oblicz bonus na podstawie wartości domyślnej

Utwórz plik bash z następującym skryptem, aby obliczyć premię na podstawie wartości domyślnej, jeśli nie podano wartości argumentu dla funkcji. Trzy wartości wejściowe zostaną pobrane od użytkownika po wykonaniu skryptu. Są to podstawowe wynagrodzenie, czynsz za dom i zasiłek medyczny. Funkcja nazwana calculate_salary () obliczy kwotę bonusową na podstawie wartości argumentu funkcji lub wartości domyślnej. Całkowita kwota wynagrodzenia zostanie policzona przez dodanie wartości podstawowy, wynajem, medyczny, I Bonusount. calculate_salary () funkcja wywołała bez żadnego argumentu lub z argumentem.

#!/bin/bash
#Podejdź podstawowe, czynszowe domowe i zasiłek medyczny pracownika
Echo „Wprowadź podstawową pensję:”
Przeczytaj podstawowy
echo „Wprowadź dom w domu:”
Przeczytaj czynsz
echo „Wprowadź zasiłek medyczny:”
Przeczytaj medyczne
#Declare Funkcja do obliczenia wynagrodzenia z bonusem
funkcjacalculate_salary ()

#Ustaw wartość
Bonus = $ 1: -5
#Calculate bonus
bonusamount = $ ((podstawowy*bonus/100))
#Calculate Całkowita pensja
Total = $ ((podstawowe+czynsz+medyczne+premii)))
#PRINT Całkowita pensja z kwotą bonusową
Echo „Całkowita pensja z premią $ % jest łączna”

#Funkcja Bez procentu bonusu
Oblicz_salary
#Funkcja z odsetkiem bonusu
Oblicz_salary 10

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu skryptu. Gdy funkcja została wywołana bez żadnego argumentu, wartość domyślna 5 została użyta do obliczenia kwoty bonusowej na podstawie kwoty podstawowej. Gdy funkcja wywołała wartość argumentu 10, kwota premii została obliczona na podstawie tej wartości. Następnie całkowite wynagrodzenie oparte na 5% premii i 10% premii wydrukowało.

Wniosek:

Użycie opcjonalnych argumentów o wartościach domyślnych w funkcji zostało opisane w tym samouczku przy użyciu trzech różnych przykładów. Wartość domyślna może być numeryczna lub ciąg. Cel użycia opcjonalnego argumentu z wartościami domyślnymi w funkcji zostanie wyczyszczony dla użytkownika Bash po przeczytaniu tego samouczka.