Argumenty wiersza poleceń

Argumenty wiersza poleceń
W wielu przypadkach skrypty BASH wymagają wartości argumentów, aby zapewnić opcje wejściowe do skryptu. Możesz obsłużyć argumenty wiersza poleceń w skrypcie Bash na dwa sposoby. Jednym z nich jest użycie Zmienne argumentu, a kolejne jest używanie getopts funkcjonować. Jak poradzić sobie z argumentami wiersza poleceń, jest pokazany w tym samouczku.

Korzystanie z zmiennych argumentów:

Zmienna argumentów zaczyna się od 0 USD. Główna nazwa pliku skryptu jest przechowywana w 0 USD, która odbiera wartości argumentów z argumentów wiersza poleceń. Jeśli dwa argumenty zostaną przekazane w wierszu poleceń, to sekwencyjnie, wartości argumentów zostaną odebrane w zmiennych 1 USD i 2 USD.

Przykład -1: wysyłanie trzech wartości liczbowych w argumentach wiersza poleceń

Utwórz plik bash z następującym skryptem. Skrypt otrzyma wartości trzech argumentów i przechowuje je w zmiennych 1 USD, 2 USD i 3 USD. Polituje całkowitą liczbę argumentów i wartości argumentów wydruku za pomocą pętli bez pętli. Suma wszystkich wartości argumentów zostanie wydrukowana później.

#!/bin/bash
# Liczenie całkowitej liczby argumentów
Echo „Całkowita liczba argumentów: $#”
# Czytanie wartości argumentów indywidualnie
Echo „Pierwsza wartość argumentu: 1 USD”
Echo „Wartość drugiego argumentu: 2 USD”
Echo „Wartość trzeciego argumentu: 3 USD”
# Czytanie wartości argumentów za pomocą pętli
dla Argval w „$@”
Do
echo -n „$ argval”
zrobione
# Dodanie wartości argumentów
Sum = $ ((1 USD+2 USD+3 USD))
# Wydrukuj wynik
echo -e "\ nResult of sum = $ sum"

Po wykonaniu pliku skryptu pojawi się następujące dane wyjściowe z trzema wartościami argumentów numerycznych, 50, 35 i 15.

$ bash cmdline1.SH 50 35 15

Przykład -2: Biorąc nazwę pliku jako argument

Utwórz plik bash z następującym skryptem, aby policzyć całkowitą liczbę znaków dowolnego pliku. Tutaj nazwa pliku zostanie przekazana jako argument wiersza poleceń.

#!/bin/bash
nazwa pliku = 1 $
TotalChar = 'WC -c $ nazwa pliku' '
Echo „Całkowita liczba znaków to $ Totalar”

Uruchom skrypt bash z nazwą pliku jako pojedynczą wartość argumentu i uruchom kolejne polecenie, aby sprawdzić całkowitą liczbę znaków tego pliku. Tutaj, dzień powszedni.Plik TXT jest używany jako wartość argumentu. Całkowita liczba postaci w dni powszednie.plik txt to 57.

$ bash cmdline2.SH WEDEKDAD.tekst
$ WC -C WEDEDDADED.tekst

Korzystanie z funkcji getopts:

Jeśli chcesz przechowywać dane w bazie danych lub dowolnym pliku lub utworzyć raport w określonym formacie na podstawie wartości argumentów wiersza poleceń, to getopts Funkcja jest najlepszą opcją wykonania zadania. Jest to wbudowana funkcja Linuksa. Dlatego możesz łatwo użyć tej funkcji w skrypcie do odczytu danych sformatowanych z wiersza poleceń.

Przykład -3: Czytanie argumentów przez funkcję getopts

Utwórz plik bash z następującym skryptem, aby zrozumieć użycie getopts funkcjonować. Funkcja „getopts” jest używana z pętlą while do odczytania opcji argumentów i wartości argumentów wiersza poleceń. Tutaj używane są 4 opcje, które są „I”, „N”, „M” I 'mi'. Instrukcja sprawy służy do dopasowania konkretnej opcji i przechowywania wartości argumentu w zmiennej. Na koniec wydrukuj wartości zmiennej.

#!/bin/bash
podczas getopts ": i: n: m: e:" arg; Do
sprawa $ arg in
i) id = $ optarg ;;
n) Nazwa = $ optarg ;;
m) produkcja_date = $ optarg ;;
e) expire_date = $ optarg ;;
esac
zrobione
echo -e "\ n $ id $ name $ produkcja_date $ expire_date \ n"

Uruchom plik z następującymi opcjami i wartościami argumentów. Tutaj, P100 to wartość opcji -i, 'Gorące ciasto„to wartość opcji -n”01-01-2021„to wartość opcji -m i”06-01-2021'to wartość opcji -e.

$ bash cmdline3.sh -i p001 -n „gorący ciasto” -M '01-01-2021 '-e '06 -01-2021'

Kiedy musisz wysłać proste wartości w skrypcie, lepiej jest użyć zmiennych argumentów. Ale jeśli chcesz wysłać dane w sformatowany sposób, lepiej jest użyć funkcji getopts, aby pobrać wartości argumentów. Zastosowania obu zmiennych argumentów i opcji getopts pokazano w następnym przykładzie.

Przykład-4: Czytanie normalnych argumentów i argumentów z opcjami getopts

Sposoby czytania argumentów wiersza poleceń za pomocą zmiennych argumentów i opcji getopts zostały pokazane osobno w poprzednich przykładach tego samouczka. Ale te dwa sposoby można użyć w jednym skrypcie do odczytu wartości argumentów wiersza poleceń. Utwórz skrypt bash z następującym kodem, aby odczytać wartości argumentu wiersza poleceń przekazane przez opcje i parametry argumentu Getopts. Tutaj użyto trzech opcji GetOpts do odczytania nazwy hosta, nazwy użytkownika i hasła wiersza poleceń. Następnie polecenie Shift zostało użyte do usunięcia wszystkich opcji getopts z polecenia do odczytu wartości wiersza poleceń za pomocą zmiennych argumentów. Ten skrypt odczytuje i wydrukuje maksymalnie trzy wartości zmiennych argumentów. Jeśli po wykonaniu kodu nie zostanie podana wartość argumentu bez opcji, zostanie wydrukowana wiadomość; W przeciwnym razie wartości zmiennej argumentu zostaną wydrukowane.

#!/bin/bash
# Czytanie argumentów z opcjami getopts
podczas gdy getopts 'h: u: p:' opcja; Do
sprawa „$ opcja” w
H)
# Drukuj nazwę hosta
echo „Nazwa hosta to $ optarg” ;;
u)
# Wydrukuj nazwę użytkownika
echo „nazwa użytkownika to $ optarg” ;;
P)
# Wydrukuj hasło
echo „Hasło to $ optarg” ;;
*)
# Wydrukuj wiadomość o pomocy w celu zapewnienia błędnych opcji
Echo „Zastosowanie: 0 $ [-h Wartość] [-u Wartość] [-p Wartość]”> i 2
# Zakończ ze skryptu
wyjście 1 ;;
esac
zrobione
# Usuń wszystkie opcje przekazane przez opcje getopts
Shift „$ (($ optind -1))”
# Czytanie pierwszych normalnych argumentów
Jeśli [ ! -z 1 $]; Następnie
Echo „Pierwsza nazwa tabeli to 1 USD”
w przeciwnym razie
echo „Nie podano normalnego argumentu."
Wyjście 1
fi
# Czytanie drugiego normalnego argumenty
Jeśli [ ! -z 2 USD]; Następnie
Echo „Druga nazwa tabeli to 2 USD”
fi
# Czytanie trzecich normalnych argumentów
Jeśli [ ! -z 3 USD]; Następnie
Echo „Nazwa trzeciej tabeli kosztuje 3 USD”
fi

Następujące dane wyjściowe pojawią się, jeśli w momencie wykonywania kodu zostanie podana niewłaściwa opcja. Tutaj opcja -a nie istnieje w skrypcie.

Poniższe dane wyjściowe pojawią się, jeśli prawidłowe opcje z wartościami są podane w wierszu poleceń w momencie wykonywania kodu.

Poniższe dane wyjściowe pojawią się, jeśli prawidłowe opcje i normalne wartości argumentów zostaną użyte w wierszu poleceń w momencie wykonywania kodu. Tutaj są normalne argumenty klient I pracownik.

Używając „$@” do czytania argumentów wiersza poleceń:

Argumenty wiersza poleceń można odczytać bez użycia zmiennych argumentów lub opcji getopts. Za pomocą '$@„Z pierwszym nawiasem to kolejny sposób na odczyt wszystkich wartości argumentów wiersza poleceń.

Przykład-5: Wartości argumentu wiersza poleceń odczytu bez zmiennej

Utwórz plik bash z następującym skryptem, aby odczytać wartości argumentu bez żadnej zmiennej argumentu i obliczyć sumę trzech wartości argumentów wiersza poleceń. „$@” Został użyty z pierwszymi nawiasami tutaj, aby przeczytać wszystkie wartości argumentów w tablicy. Następnie zostanie wydrukowana suma pierwszych trzech wartości tablicy.

#!/bin/bash
# Przeczytaj wszystkie wartości argumentów
argvals = („$@”)
# Sprawdź całkowitą liczbę argumentów
Jeśli [$# -GT 2]
Następnie
# Oblicz sumę trzech argumentów wiersza poleceń
sum = $ (($ argvals [0]+$ argvals [1]+$ argvals [2])))))
echo „Suma 3 argumentów wiersza poleceń to $ sum”
fi

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu dla wartości argumentu 12, 20 i 90. Suma tych liczb wynosi 122.

Wniosek:

Pokazane tutaj sposoby dostarczania wartości argumentów wiersza poleceń bez żadnej opcji i z opcjami. Pokazano tutaj również sposób odczytania wartości argumentów wiersza poleceń bez użycia zmiennych. Mam nadzieję, że ten samouczek pomoże czytelnikom prawidłowo użyć wartości argumentów wiersza poleceń w skrypcie Bash.