Rozszerzenie polecenia bash

Rozszerzenie polecenia bash

Podczas pracy z poleceniami w Bash osiągniesz punkt, w którym musisz użyć wyjścia danego polecenia jako wartości dla danej zmiennej. Rozszerzenie polecenia jest terminem używanym w odniesieniu do Zastąpienie dowodzenia gdzie wyjście danego polecenia jest używane zamiast polecenia. Idealnie, polecenie zostanie wykonane, a jego wartość zastępuje polecenie, aw większości przypadków jest używane podczas pracy ze zmiennymi.

Rozszerzenie polecenia Bash jest przydatne, gdy musisz użyć danej zmiennej, której wartości nie są znane, chyba że polecenie najpierw wykonuje. Ten przewodnik obejmuje różne przykłady, aby zrozumieć, jak pracować z zastąpieniem dowództwa Bash.

Jak korzystać z rozszerzenia polecenia bash

Rozszerzenie polecenia można używać na dwa sposoby.

Możesz go otrzymać jak w składni poniżej:

$ (polecenie)

Alternatywnie możesz użyć odwrotnie, jak pokazano niżej.

'Komenda'

Gdy użyjesz podstawienia bash w skrypcie, wyjście polecenia zastąpi polecenie po wykonaniu.

Na przykład, jeśli chcesz napisać polecenie, które drukuje bieżącą datę i godzinę oraz czas pracy podczas wykonywania skryptu, możemy mieć skrypt napisany jak pokazano poniżej.

Utworzyliśmy zmienną w skrypcie, ale jej wartość zależy od wyjścia polecenia. Ponadto drukujemy wartość zadeklarowanej zmiennej za pomocą Echo Komenda. To jest przypadek zastąpienia dowództwa Bash. Wykonajmy polecenie i zobaczmy, jak się zachowuje.

Zauważ, że wszelkie linie końcowe podczas drukowania wyjścia są usunięte podczas używania podstawienia dowodzenia. Na przykład użyjmy polecenie SEQ Aby wydrukować wartości od 1 do 10, pomijając dwie wartości. Jeśli uruchomimy poniższe polecenie, zauważamy, że każdy nowy wiersz jest rozliczany.

$ seq 1 2 10

Jeśli jednak użyjesz podstawienia polecenia dla tego samego polecenia, dane wyjściowe byłyby inne, gdy nowe wiersze zostaną usunięte.

Rozszerzenie polecenia bash na pętlach

Jeśli masz dany skrypt, który powinien wykonać dane zadanie, ale wartości tej zmiennej zależą od wyjścia polecenia, możesz użyć rozszerzenia bash. Na przykład, jeśli masz plik zawierający nazwy adresów IP, możesz uruchomić dla pętli wykonać dane zadanie na podstawie nazw tego pliku.

Poniższy skrypt otwiera plik za pomocą kot polecenie i drukuje zawartość pliku na bieżącej powładzie.

Oto dane wyjściowe potwierdzające, że możesz użyć podstawienia BASH z pętlami.

Rozszerzenie polecenia i rozszerzenie parametrów

Rozszerzenie polecenia Bash jest prawie podobne do rozszerzenia parametru. W podstawieniu Bash używamy $ (), podczas gdy w przypadku rozszerzenia parametrów używamy $ . Rozszerzenie parametru chroni zmienną przed rozszerzeniem poleceń. Miejmy przykład do zrozumienia.

W powyższym przykładzie tworzymy zmienną nazwaną data. Jeśli odzwierciedlamy zmienną za pomocą rozszerzenia parametru, otrzymujemy, że wydrukujemy wartość zmiennej, a następnie słowo dodane po wartości zmiennej.

Jednak w przykładzie zastąpienia dowództwa widzimy, że polecenie data, który drukuje bieżącą datę i godzinę, zostaje zastąpiony, a wyjście jest używane zamiast polecenia.

Jeśli więc nie chcesz, aby zmienna była traktowana jako przypadek rozszerzenia polecenia, użyj $ zamiast $ ().

Wniosek

Rozszerzenie polecenia bash jest tym samym jak podstawienie dowodzenia. Ten przewodnik wyjaśnił, co oznacza rozszerzenie polecenia, i podaliśmy różne przykłady, aby zrozumieć, w jaki sposób możesz użyć rozszerzenia polecenia dla swoich skryptów Bash. Kluczowym zastosowaniem jest to, że podstawienie polecenia jest wtedy, gdy wyniki polecenia jest używane zamiast samego polecenia podczas otrzymywania lub ustawiania wartości zmiennej.