Wyjście polecenia BASH do zmiennej

Bash Command Output Variable



Różne typy poleceń bash muszą być uruchamiane z terminala w zależności od wymagań użytkownika. Gdy użytkownik uruchamia dowolne polecenie z terminala, wyświetla dane wyjściowe, jeśli nie ma błędu, w przeciwnym razie wyświetla komunikat o błędzie. Czasami dane wyjściowe polecenia muszą być przechowywane w zmiennej do wykorzystania w przyszłości. W tym celu można wykorzystać funkcję podstawiania poleceń powłoki w bash. W tym samouczku pokazano, w jaki sposób można przechowywać różne typy poleceń powłoki w zmiennej za pomocą tej funkcji.

zmienny= $(Komenda)
zmienny= $(Komenda [opcja…]argument1 argumenty2 ...)
zmienny= $(/ścieżka/do/Komenda)

LUB







zmienny=``Komenda``
zmienny=``Komenda [opcja…]argument1 argumenty2 ...``
zmienny=`/ścieżka/do/Komenda``

***Uwaga: nie używaj spacji przed i po znaku równości podczas korzystania z powyższych poleceń.



Wyjście pojedynczego polecenia do zmiennej

Polecenia Bash mogą być używane bez żadnych opcji i argumentów dla tych poleceń, w których te części są opcjonalne. Poniższe dwa przykłady pokazują zastosowania prostego podstawiania poleceń.



Przykład 1:

walić ` data` Polecenie służy do pokazywania aktualnej daty i czasu. Poniższy skrypt przechowuje dane wyjściowe ` data` polecenie w $ bieżąca data zmienna za pomocą podstawiania poleceń.





$bieżąca data= $(Data)
$wyrzucił 'Dziś jest$bieżąca_data'

Wyjście:



Przykład #2:

`pwd` polecenie pokazuje ścieżkę bieżącego katalogu roboczego. Poniższy skrypt przechowuje dane wyjściowe `pwd` polecenie do zmiennej, $ aktualny_katalog a wartość tej zmiennej jest wypisywana za pomocą „echo” Komenda.

$obecny_katalog=``pwd``
$wyrzucił 'Aktualny katalog to:$ aktualny_katalog'

Wyjście:

Polecenie z opcją i argumentem

Opcja i argument są obowiązkowe dla niektórych poleceń basha. Poniższe przykłady pokazują, jak można przechowywać dane wyjściowe polecenia z opcją i argumentem w zmiennej.

Przykład #3:

Bash ` toaleta Polecenie służy do zliczania całkowitej liczby linii, słów i znaków dowolnego pliku. To polecenie używa -c, -w i -l jako opcji i nazwy pliku jako argumentu do wygenerowania danych wyjściowych. Utwórz plik tekstowy o nazwie owoce.txt z następującymi danymi, aby przetestować następny skrypt.
owoce.txt

owoce.txt
Mango
Pomarańczowy
Banan
Winogrono
Guawa
jabłko

Uruchom następujące polecenia, aby policzyć i zapisać całkowitą liczbę słów w owoce.txt plik do zmiennej, $count_words i wypisz wartość za pomocą ` echo` Komenda.

$count_words=``toaleta -wowoce.txt``
$wyrzucił 'Całkowita liczba słów w pliku fruits.txt to$count_words'

Wyjście:

Przykład nr 4:

`cięcie` to kolejne polecenie bash, które używa opcji i argumentu do generowania danych wyjściowych. Utwórz plik tekstowy o nazwie dzień tygodnia.txt z nazwami siedmiu dni tygodnia, aby uruchomić następny skrypt.

dzień tygodnia.txt

poniedziałek
Wtorek
Środa
czwartek
piątek
sobota
niedziela

Utwórz plik bash o nazwie cmdsub1.sh z następującym skryptem. W tym skrypcie podczas pętla służy do odczytywania zawartości dzień tygodnia.txt plik wiersz po wierszu i odczytaj pierwsze trzy znaki każdego wiersza za pomocą ` cięcie` Komenda. Po wycięciu wartość ciągu jest przechowywana w zmiennej $dzień . Następnie, jeśli instrukcja służy do sprawdzania wartości $dzień jest ' Słońce' albo nie. Wynik wydrukuje ‘ Niedziela to święto ‘ kiedy jeśli warunek jest spełniony, w przeciwnym razie wypisze wartość $dzień .

cmdsub1.sh

#!/kosz/bash
Nazwa pliku='dzień tygodnia.txt'
podczas czytaćlinia;robić
dzień=``wyrzucił $linia | skaleczenie -C 1-3``
Jeśli [ $dzień=='Słońce' ]
następnie
wyrzucił „Niedziela to święto”
w przeciwnym razie
wyrzucił $dzień
być
Gotowe<$nazwa pliku

Uruchom skrypt.

$Kotdzień tygodnia.txt
$grzmotnąćcmdsub1.sh

Wyjście:

Korzystanie z podmiany poleceń w pętli

Możesz przechowywać dane wyjściowe podstawiania poleceń w dowolnej zmiennej pętli, która jest pokazana w następnym przykładzie.

Przykład nr 5:

Utwórz plik o nazwie cmdsub2.sh z następującym kodem. Tutaj ` ls -d * / Polecenie ` służy do pobrania całej listy katalogów z bieżącego katalogu. Pętla For służy tutaj do odczytywania każdego katalogu z wyjścia i przechowywania go w zmiennej $dirname który zostanie wydrukowany później.

cmdsub2.sh

#!/kosz/bash
dla dirname w$(ls -D * /)
robić
wyrzucił '$dirname'
Gotowe

Uruchom skrypt.

$grzmotnąćcmdsub2.sh

Wyjście:

Używanie zagnieżdżonych poleceń

W poprzednim przykładzie pokazano, jak używać wielu poleceń za pomocą pipe(|). Ale możesz użyć zagnieżdżonych poleceń w zastępowaniu poleceń, gdzie wynik pierwszego polecenia zależy od wyniku drugiego polecenia i działa odwrotnie do polecenia potoku(|).

Składnia polecenia zagnieżdżonego:

gdzie=``polecenie1 ``Komenda``

Przykład nr 6:

Dwa polecenia, ` wyrzucił ` i ` który ` są używane w tym przykładzie jako polecenie zagnieżdżone. Tutaj ` który Jako pierwsze zostanie wykonane polecenie `, które drukuje informacje o aktualnie zalogowanym użytkowniku. Wyjście ` który polecenie ` zostanie wykonane przez ` wyrzucił polecenie ` i wyjście ` wyrzucił ` zapisze w zmiennej $ var . Tutaj wyjście ` wyrzucił Polecenie ` zależy od wyniku ` który polecenie `.

$gdzie=``wyrzucił``który``
$wyrzucił $ var

Wyjście:

Korzystanie ze ścieżki poleceń

Jeśli znasz ścieżkę polecenia, możesz uruchomić polecenie, określając ścieżkę polecenia podczas korzystania z podstawiania poleceń. Poniższy przykład pokazuje użycie ścieżki poleceń.

Przykład nr 7:

„Whoami” komenda pokazuje nazwę aktualnie zalogowanego użytkownika. Domyślnie to polecenie jest przechowywane w / usr/ jestem/ teczka. Uruchom następujący skrypt, aby uruchomić ` Whoami polecenie używając ścieżki i zapisz w zmiennej, $wyjście, i wypisz wartość $wyjście .

$wyjście= $(/usr/jestem/kim jestem)
$wyrzucił $wyjście

Wyjście:

Korzystanie z argumentu wiersza poleceń

Możesz użyć argumentu wiersza poleceń z poleceniem jako argumentu w podstawieniu polecenia.

Przykład nr 8:

Utwórz plik bash o nazwie cmdsub3.sh z następującym skryptem. ` nazwa podstawowa Komenda ` służy tutaj do pobrania nazwy pliku z 2NSargument wiersza poleceń i przechowywany w zmiennej, $nazwa pliku . Znamy 1NSargument wiersza poleceń to nazwa wykonywanego skryptu, który jest oznaczony przez $0.

#!/kosz/bash
Nazwa pliku=``nazwa podstawowa 1 zł``
wyrzucił 'Nazwa pliku to$nazwa pliku'

Uruchom skrypt z następującą wartością argumentu.

$grzmotnąćcmdsub3.sh Pulpit/temp/cześć.txt

Tutaj, nazwa podstawowa ścieżki, Pulpit/temp/hello.txt jest ' cześć.txt ”. Tak więc wartość $nazwa pliku będzie cześć.txt .

Wyjście:

Wniosek:

W tym samouczku pokazano różne zastosowania podstawienia poleceń. Jeśli musisz pracować z wieloma poleceniami lub poleceniami zależnymi i tymczasowo przechowywać wynik, aby później wykonać inne zadania, możesz użyć tej funkcji w skrypcie, aby uzyskać dane wyjściowe.

Więcej informacji w filmie: