Linux Subshells dla początkujących z przykładami
- 3520
- 463
- Maria Piwowarczyk
Korzystanie z subshells w Bash zapewnia możliwość generowania informacji wrażliwych na kontekst z prawej strony polecenia Bash. Na przykład, jeśli chcesz zmodyfikować ciąg tekstowy w obrębie Echo
stwierdzenie, wówczas można to zrobić łatwo za pomocą subshells.
W tym samouczku się nauczysz:
- Jak używać zastosowania używania subshells w Bash
- Jak korzystać z podseksów do uzyskania informacji wrażliwych na kontekst
- Podstawowe przykłady użycia bashu
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu Linuksa |
Oprogramowanie | Wiersz poleceń Bash, system oparty na Linuksie |
Inny | Wszelkie narzędzie, które nie jest zawarte w skorupce Bash domyślnie można zainstalować za pomocą za pomocą sudo apt-get instal instal narzędzie (Lub Mnij instalacja dla systemów opartych na Redhat) |
Konwencje | # - Wymaga wykonywania Linux -Commands z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-Wymaga wykonania Linux-commands jako zwykłego niepewnego użytkownika |
Przykład 1: Dwie różne składni
Bash pozwala na dwie różne składni subshella, a mianowicie $ ()
i otaczające się oświadczenia. Spójrzmy na kilka łatwych przykładów na początek:
$ echo '$ (echo' a ')' $ (echo a) $ echo "$ (echo 'a')" a $ echo "a $ (echo 'b') c" abc $ echo "a'echo 'b „C” ABC
W pierwszym poleceniu, jako przykład, użyliśmy '
pojedyncze cytaty. Spowodowało to nasze polecenie Subshell, wewnątrz pojedynczych cytatów, do interpretacji jako tekst dosłowny zamiast polecenia. To jest standardowy bash: '
Wskazuje dosłownie, "
Wskazuje, że ciąg zostanie przeanalizowany dla subshells i zmiennych.
W drugim poleceniu zamieniamy '
Do "
i dlatego ciąg jest analizowany dla rzeczywistych poleceń i zmiennych. W rezultacie uruchamiana jest subshell, dzięki naszej składni subshell ($ ()
) i polecenie wewnątrz subshellecho „a”
) jest wykonywany dosłownie, a zatem A
jest produkowany, co jest wtedy wstawione na nadrzędnym / najwyższym poziomie Echo
. Polecenie na tym etapie można odczytać jako Echo „A”
a zatem wyjście jest A
.
W trzeciem polece. Powtarzamy list B
wewnątrz subshellów, a to jest połączone po lewej i po prawej stronie literami A
I C
dając ogólną wydajność ABC
W podobny sposób jak drugie polecenie.
W czwartym i ostatnim poleceniu przykładujemy alternatywną składnię subshell bash, używając tylnych biletów zamiast $ ()
. Ważne jest, aby to wiedzieć $ ()
jest preferowaną składnią i że w niektórych zdalnych przypadkach składnia oparta na tylnej $ ()
nie. W ten sposób mocno zachęcałbym cię do korzystania z $ ()
składnia dla subshells, a także tego będziemy używać w następujących przykładach.
Przykład 2: Trochę bardziej złożone
$ Touch a $ echo "-$ (ls [a-z])" -a $ echo "-=-|| $ (ls [a-z] | xargs ls -l) ||-=-"-=-|| -RW -RW-R-- 1 Roel Roel 0 września 5 09:26 A ||-=-
Tutaj najpierw tworzymy pusty plik, używając Dotknij a
Komenda. Następnie używamy Echo
Aby wyprowadzić coś, co nasza subshell $ (ls [a-z])
wygeneruje. Jasne, możemy wykonać LS
bezpośrednio i daj mniej więcej taki sam wynik, ale zwróć uwagę na to, jak dodajemy -
do wyjścia jako prefiks.
W ostatecznym poleceniu wstawiamy niektóre znaki z przodu i na końcu Echo
polecenie, które sprawia, że wyjście wygląda nieco ładniej. Używamy subshell, aby najpierw znaleźć A
plik, który utworzyliśmy wcześniej (LS [A-Z]
), a następnie - wciąż wewnątrz subshell - przejdź wyniki tego polecenia (które byłyby tylko A
dosłownie - ja.mi. plik, który utworzyliśmy w pierwszym poleceniu) do ls -l
za pomocą rury (|
) i Xargs
Komenda. Aby uzyskać więcej informacji na temat XARGS, zapoznaj się z naszymi artykułami Xargs dla początkujących z przykładami i multi wątku Xarg z przykładami.
Przykład 3: Podwójne cytaty wewnątrz subshells i subshells!
echo "$ (echo" $ (echo "it pracuje") "| sed 's | it | it z pewnością |')" z pewnością działa
Fajnie, nie? Widzimy tutaj, że podwójne cytaty można używać w subshellowie bez generowania błędów antenu. Widzimy również, w jaki sposób subshell może zostać zagnieżdżona w innej subshell. Czy możesz przeanalizować składnię? Najłatwiejszym sposobem jest rozpoczęcie „w środku lub rdzeniu wszystkich subshellów”, co w tym przypadku byłoby proste echo „to działa”
.
To polecenie wyniesie to działa
W wyniku połączenia subshell $ (echo „it działa”)
. Zdjęcie to działa
Zamiast podseksui, ja.mi.
echo "$ (echo" it działa "| sed 's | it | to z pewnością |')" To z pewnością działa
To już wygląda prostsze. Następnie pomocne jest wiedzieć, że sed
Dowództwo dokona substytutu (dzięki S
polecenie tuż przed |
separator poleceń) tekstu To
Do to na pewno
. Możesz przeczytać sed
polecenie jako Zamień __it__ na pewno __. Wyjście subshell będą zatem
to na pewno działa ”, ja.mi.
echo „z pewnością działa”, z pewnością działa
Wniosek
W tym artykule widzieliśmy, że subshells na pewno pracuj (zamierzone gra słów) i że mogą być używane w różnych okolicznościach, ze względu. Subshells są bardzo potężne, a kiedy zaczniesz ich używać, cóż, prawdopodobnie nie będzie się zatrzymać. Wkrótce będziesz pisać coś w stylu:
$ Var = „Goodbye”; echo "Thanch $ (echo" $ var "| sed 's |^| i |')" | sed | k | k you | '
Ten jest dla ciebie, abyś mógł się bawić! Dziękuję i pożegnanie
Powiązane samouczki Linux:
- Jak używać bash subshells w środku, jeśli instrukcje
- Zaawansowane podpsy Linux z przykładami
- Rzeczy do zainstalowania na Ubuntu 20.04
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Wielokrotyściowe skrypty i zarządzanie procesami w…
- Mastering Bash Script Loops
- Podstawowe polecenia Linux
- Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…