Polecenie Linux Set to wbudowane polecenie powłoki, które pozwala wyświetlać lub ustawić zmienne powłoki i środowiska. W tym przewodniku omówimy polecenie set i pokazujemy różne sposoby użycia narzędzia wiersza poleceń.
Podstawowa składnia
Polecenie SET przyjmuje następującą składnię:
$ Command -options Argumenty
Opcje poleceń
Istnieje wiele opcji, które można użyć z poleceniem Set. Zbadajmy niektóre z nich:
Wartości wyjścia
Poniżej przedstawiono wartości wyjścia powiązanego z poleceniem Set:
0: Dowództwo zakończyło się powodzeniem.
Ustaw polecenie bez żadnych opcji
Bez żadnych argumentów, polecenie SET wymienia wszystkie zmienne powłoki, w tym ich wartości.
$ set
Ustaw parametry pozycji za pomocą polecenia Set
Polecenie zestawu Linux można użyć do przypisania wartości do parametrów pozycji. Parametr pozycyjny jest zmienną w programie powłoki, a jego wartość jest określana jako $ n, gdzie n jest cyfrą oznaczającą pozycję parametru.
Wartość 1 USD jest pierwszym parametrem pozycyjnym po nazwie pliku lub polecenia. Wartość 2 USD jest drugim parametrem i tak dalej.
Załóżmy, że wykonujemy polecenie pokazane poniżej:
$ set Red Blue Green
Tutaj czerwony odpowiada parametrze pozycyjnej 1 USD, Blue odpowiada parametrze 2 USD, a na koniec zielony odpowiada 3 USD.
Aby wymienić wszystkie parametry w zamówieniu 1 USD 2 USD 3, uruchom polecenie ECHO poniżej:
$ echo „$*”
Aby wymienić pierwszy parametr, wykonaj:
$ echo 1 $
Aby wymienić drugi parametr, uruchom:
$ echo 2 USD
I tak dalej.
Użyj polecenia SET, aby rozejrzeć wszystkie parametry pozycyjne
Aby rozeutować parametry pozycyjne, uruchom polecenie SET z podwójnymi łączonymi - jak pokazano.
$ set --
Jeszcze raz, jeśli spróbujesz wymienić parametry pozycyjne, otrzymasz puste wyjście, co oznacza, że nie były one niepotrzebne.
Zignoruj niezbadaną zmienną
Domyślnie skrypt powłoki wychodzi na niezdefiniowaną zmienną. W skrypcie myscript.SH pokazane poniżej, zmienna $ foo nie jest jeszcze zdefiniowana i dlatego nie istnieje.
Po uruchomieniu skryptu zwraca pusty wiersz dla linii zawierającej nieistniejącą zmienną i wykonuje następujący wiersz:
$ ./myscript.cii
Ta anomalia jest niepożądana, a programiści chcieliby zostać powiadomieni w przypadku niezdefiniowanych zmiennych. Dyrektywa Set -u na początku skryptu wydrukuje błąd na powładzie, jeśli skrypt przebiega w niezdefiniowaną zmienną.
Gdy skrypt zostanie ponownie uruchomiony, wyświetlany jest błąd dotyczący zmiennej niezwiązanej.
Wyświetl błąd, jeśli polecenie nie istnieje
Zwykle, jeśli polecenie pojawi się w błędach i nie wykonuje wykonywania, powłoka bash będzie nadal wykonywać pozostałe polecenia. Weźmy na przykład skrypt powłoki poniżej:
Polecenie Foobar nie istnieje, a błąd powinien być wyświetlany na powładzie Bash, gdy skrypt jest wykonywany, aby pokazać, że skrypt w problem. Jednak tak się nie dzieje, a powłoka idzie dalej, aby wykonać następny wiersz, jak pokazano:
Podobnie jak poprzedni przykład, nie jest to dobra praktyka podczas pisania scenariuszy Shell, szczególnie w celu bezpieczeństwa i debugowania. Idealnie, skrypt powinien zatrzymać się, gdy napotyka błąd. Aby zająć się tym scenariuszem, zdefiniuj zestaw dyrektywy -e na początku skryptu, jak pokazano.
Kiedy spróbujesz ponownie uruchomić skrypt, wpadniesz w błąd, jak pokazano:
Wyświetl błąd w poleceń rurociągów
Zestaw dyrektywy -e nie działa w przypadku poleceń rurowych. Rozważ skrypt poniżej:
Po uruchomieniu skryptu zwraca błąd, ale nadal uruchamia kolejne polecenie:
Aby przezwyciężyć tę przeszkodę, przejdź przez Set -eo PipeFail Dyrektywa, jak pokazano:
$ set -eo ripefail
Tym razem skrypt kończy się i nie wykonuje następnego wiersza.
Zdefiniuj Allexport i powiadom opcje
Aby ustawić Allexport i powiadom opcje, uruchom polecenie:
$ set -o allexport -o powiadom
Wniosek
To były kilka przykładów tego, jak możesz użyć polecenia Set w skontlerze. Jak zaobserwowano, polecenie Set może być przydatnym narzędziem w ustawianiu parametrów pozycji i debugowaniu skłonności skorupy.