W tym samouczku wyjaśnimy dwa najbardziej przydatne rozszerzenia BASH używane w skontlerze:
Rozszerzenie powłoki odbywa się na skrypcie po podzieleniu na tokeny. Token to sekwencja znaków uważanych za pojedynczą jednostkę przez powłokę. Może to być słowo lub operator.
Przeprowadziliśmy wszystkie przykłady i skrypty wymienione w tym artykule na temat systemu debiana 10. Możesz jednak łatwo je odtworzyć na większości skorup Linux. Do tego samouczka używamy domyślnego wiersza poleceń debiana, terminal. W Debian możesz uzyskać do niego dostęp za pośrednictwem paska wyszukiwania aplikacji w następujący sposób:
Aby uzyskać dostęp do uruchamiania aplikacji, po prostu naciśnij klawisz Super/Windows na klawiaturze.
$ () Zastąpienie dowodzenia
Według oficjalnej instrukcji referencyjnej GNU Bash:
„Zastąpienie polecenia pozwala wyjściu polecenia na zastąpienie samego polecenia. Bash wykonuje rozszerzenie poprzez wykonywanie polecenia i zastępując podstawienie polecenia standardowym wyjściem polecenia, przy czym każde końcowe nowe linie. Wbudowane nowe linie nie są usuwane, ale można je usunąć podczas podziału słów." Zastąpienie dowodzenia występuje, gdy polecenie jest zamknięte w następujący sposób:
$ (polecenie)
Lub
'Komenda'
Na przykład następujące polecenia ECHO zastępują dane wyjściowe polecenia daty: ich dane wejściowe:
$ echo $ (data)
$ echo „data”
Możesz także użyć podstawienia polecenia, aby przypisać wartość do zmiennej. Na przykład dzisiaj wydrukujemy dzisiejszą datę za pośrednictwem zmiennej w następujący sposób:
$ Dziś = $ (data)
$ echo „$ dzisiaj”
Innym użytecznością podstawienia dowodzenia jest pętle powłoki, aby uzyskać dane wejściowe. Tutaj spróbujemy wydrukować wszystkie .Pliki TXT w naszym folderze domowym za pomocą podstawienia polecenia:
dla F in/Home/Sana/*.tekst
Do
echo „$ f”
zrobione
Korzystanie z podstawienia dowodzenia w skrypcie powłoki
Powyższe przykłady to kilka sposobów, w jakie możesz wykorzystać moc zastąpienia dowodzenia w skrypcie powłoki. Oto przykładowy raport statusu, który możemy wydrukować za pomocą następującego skryptu powłoki:
#!/bin/sh
Echo *** Raport o stanie ***
Dziś = $ (data)
Echo „Dzisiaj jest $ dzisiaj”
Użytkownicy = $ (kto | Wc -l)
echo „Użytkownicy $ są obecnie zalogowani”
Uptime = $ (data; uptime)
Echo „czas uptejszy to $ Uptime”
W tym skrypcie zastosowano podstawienie dowodzenia; Drukując datę, zalogowane użytkowników i czas aktualizacji. Zapisaliśmy skrypt w następujący sposób:
Uczyniło go wykonywaniem, a następnie przeszedł przez następujące polecenie:
$ chmod +x status.cii
$ ./Statys.cii
Oto dane wyjściowe naszego statusu.Skrypt SH:
Możesz oczywiście stworzyć bardziej znaczące skrypty, postępując zgodnie z przykładami, o których właśnie wspomnialiśmy.
$ Podstawienie/rozszerzenie parametrów
Parametr w Bash jest jednostką używaną do przechowywania wartości. Do parametru można odwoływać się do liczby, nazwy lub specjalnego symbolu. Gdy parametr jest odwoływany przez liczbę, nazywa się on a Parametr pozycyjny. Gdy parametr jest odwoływany przez nazwę, nazywa się to zmienny. Gdy parametr jest odwoływany przez specjalny symbol, oznacza to, że są to parametry autosetów o specjalnych zastosowaniach.
Rozszerzenie/podstawienie parametrów to proces pobierania wartości z odwołanego encji/parametru. To tak, jakbyś rozszerzył zmienną, aby pobrać jej wartość.
Najprostszą możliwą składnią rozszerzenia parametru jest następujące:
Oto jak możesz użyć rozszerzenia parametru w Bash:
$ parametr
Na przykład najprostszym użyciem jest zastąpienie parametru jego wartością:
$ name = "John Doe"
$ echo „$ nazwa”
To polecenie zastąpi wartość zmiennej „nazwa”, która będzie używana przez polecenie ECHO:
Być może myślisz, że to samo można osiągnąć, unikając kręconych aparatów ortodontycznych w następujący sposób:
Odpowiedź jest taka, że podczas rozszerzenia parametru te kręcone aparaty ortodontyczne pomagają w wyznaczaniu nazwy zmiennej. Wyjaśnijmy, co rozumiemy, ograniczając tutaj. Pozwól mi uruchomić następujące polecenie w moim systemie:
$ echo „nazwa osoby to $ name_”
Wynik nie wydrukował wartości nazwy zmiennej jako systemu, że odnoszę się do zmiennej „Nazwa”. Zatem moja nazwa zmienna nie była „ograniczona”. Kręcone klamry w poniższym przykładzie wyznaczą nazwę zmiennej i zwróci wyniki w następujący sposób:
$ echo „Nazwa osoby to $ Nazwa _”
Oto wszystkie sposoby, w jakie zmienne są zastępowane w skorupce:
$ zmienna | To polecenie zastępuje wartość zmiennej. |
$ zmienna: -word | Jeśli zmienna jest zerowa lub nie jest ustawiona, słowo zastępuje się zmienną. Wartość zmiennej nie zmienia się. |
$ zmienna: = Word | Jeśli zmienna jest zerowa lub nie jest ustawiona, wartość zmiennej jest ustawiona na słowo. |
$ zmienna:?wiadomość | Jeśli zmienna jest zerowa lub nie jest ustawiona, komunikat jest drukowany na standardowy błąd bash. |
$ zmienna:+słowo | Jeśli zmienny jest ustawiony, słowo zastępuje się zmienną. Jednak wartość samej zmiennej się nie zmienia. |
Powyższe przykłady to kilka sposobów, w jakie możesz wykorzystać moc zmiennej podstawienia w BASH. Możesz uwzględnić te sposoby wykorzystania rozszerzenia w skontlerze, aby optymalnie osiągnąć pod ręką zadanie.