Różne przykłady podpowłoki
W tej części samouczka pokazano różne sposoby wykonywania skryptu w podpowłoce.
Przykład 1: Wykonaj podpowłokę przy użyciu pojedynczego i podwójnego cudzysłowu
Utwórz plik Bash za pomocą następującego skryptu, który drukuje bieżącą datę i godzinę. Następnie zmienna $strVal jest drukowana poprzez ujęcie skryptu podpowłoki w pojedyncze i podwójne cudzysłowy.
#!/bin/bash
# Wydrukuj polecenie `date` w podpowłoce
Echo 'Dziś jest `data` '
# Zdefiniuj zmienną łańcuchową
strVal = „Podpowłoka Bash”
# Wydrukuj zmienną w podpowłoce, używając pojedynczych cudzysłowów
Echo „Wyjście pojedynczych cudzysłowów:” '$(echo $strVal)'
# Wydrukuj zmienną w podpowłoce, używając podwójnych cudzysłowów
Echo „Wynik podwójnych cudzysłowów:” ' $(echo $strVal) '
Po wykonaniu skryptu pojawia się następujący wynik. Skrypt podpowłoki jest drukowany jako łańcuch, jeśli jest ujęty w pojedyncze cudzysłowy. Skrypt podpowłoki jest wykonywany, gdy jest ujęty w podwójne cudzysłowy:
Przykład 2: Przeszukaj wszystkie pliki określonego rozszerzenia za pomocą podpowłoki
Utwórz plik Bash za pomocą następującego skryptu, który pobiera rozszerzenie pliku jako dane wejściowe od użytkownika. Następnie polecenie „ls” jest wykonywane w podpowłoce w celu przeszukania wszystkich plików tego konkretnego rozszerzenia.
#!/bin/bash
Echo -N „Wprowadź nazwę rozszerzenia pliku:”
#Weź nazwę rozszerzenia pliku, które będzie wyszukiwane
Czytać wew
#Sprawdź wprowadzoną wartość
Jeśli [ [ $wewn == '' ] ] ; Następnie
#Drukuj komunikat o błędzie
Echo „Nie podano przedłużenia”.
w przeciwnym razie
Echo „Nazwy plików z $wewn rozszerzenie:'
#Wydrukuj wszystkie nazwy plików z podanym rozszerzeniem
Echo ' $( echo `ls *.$ext` ) '
Być
Poniższe wyjście pojawia się po wykonaniu skryptu z wejściem „txt”. Zgodnie z wynikami w bieżącej lokalizacji istnieją trzy pliki tekstowe:
Po wykonaniu skryptu z pustą wartością pojawia się następujący wynik:
Przykład 3: Wykonaj wyrażenie arytmetyczne w podpowłoce
Utwórz plik Bash za pomocą następującego skryptu, w którym zmienna o tej samej nazwie jest używana w powłoce głównej i powłoce podrzędnej. Operacja arytmetyczna jest zdefiniowana w powłoce głównej i podpowłoce.
#!/bin/bash# Zdefiniuj nadrzędną zmienną powłoki
numer = 10
#Wydrukuj wynik na podstawie zmiennej powłoki nadrzędnej
( ( wynik = $liczba + 5 ) )
Echo 'Suma $liczba +5= $wynik '
# Utwórz zmienną podpowłoki o tej samej nazwie, co powłoka nadrzędna
( numer = 20 ; ( ( wynik = $liczba + 10 ) ) ; Echo 'Suma $liczba +5= $wynik ' )
#Wydrukuj ponownie wynik na podstawie zmiennej powłoki nadrzędnej
Echo 'Suma $liczba +5= $wynik '
Po wykonaniu skryptu pojawia się następujący wynik. Pierwsze i ostatnie wyjścia pokazują wynik powłoki głównej. Drugie wyjście pokazuje wynik podpowłoki. Zmienna powłoki głównej nie jest modyfikowana przez zmienną powłoki podrzędnej:
Przykład 4: Wykonaj wiele poleceń w podpowłoce
Utwórz plik Bash za pomocą następującego skryptu, który wysyła dane wyjściowe polecenia „echo” do polecenia „sed”, które zastępuje pasującą wartość ciągu innym ciągiem. Dane wyjściowe polecenia „echo” to „JavaScript”. Tak więc ta wartość jest porównywana z „Java” i „JavaScript”. Jeśli zostanie znalezione dopasowanie, pasujące ciągi zostaną zastąpione ciągiem „Typ”.
#!/bin/bash# Zdefiniuj wartość ciągu
strVal = „JavaScript”
#Wydrukuj oryginalną wartość ciągu
Echo „Wartość ciągu: $strVal '
#Wydrukuj wartość podpowłoki
Echo -N 'Wartość podpowłoki: '
Echo ' $(echo $strVal | sed 's|Java|Typ JavaScript|') '
Po wykonaniu skryptu pojawia się następujący wynik. Zgodnie z danymi wyjściowymi ciąg „Java” jest zastępowany ciągiem „Typ”. Dane wyjściowe podpowłoki to „JavaScript TypeScript”:
Wniosek
Jedno lub więcej poleceń lub skryptów można wykonać przy użyciu podpowłoki bez wpływu na główną powłokę. Cele używania podpowłoki są wyjaśnione w tym samouczku przy użyciu wielu przykładów. W podanych przykładach podpowłoka wykonuje różne zadania, takie jak przeszukiwanie plików, obliczanie sumy liczb, zastępowanie ciągów znaków itp. Koncepcja użycia podpowłoki została właściwie zademonstrowana, a nowi użytkownicy Bash będą teraz mogli używać podpowłoki po przeczytaniu tego samouczka.