Wyjście polecenia Bash do zmiennej

Wyjście polecenia Bash do zmiennej
Różne typy poleceń BASH należy uruchomić z terminalu na podstawie wymagań użytkownika. Gdy użytkownik uruchamia dowolne polecenie z terminala, wyświetla wyjście, jeśli nie istnieje błąd, inaczej wyświetla komunikat o błędzie. Czasami wyjście polecenia musi być przechowywane w zmiennej do wykorzystania w przyszłości. W tym celu można użyć funkcji zastąpienia dowództwa powłoki. Jak można przechowywać różne typy poleceń powłoki w zmiennej za pomocą tej funkcji, jest pokazany w tym samouczku.

Składnia zastępcza dowodzenia:

zmienna = $ (polecenie)
zmienna = $ (polecenie [opcja…] argument1 argumenty2…)
zmienna = $ (/ścieżka/do/polecenie)

LUB

zmienna = „polecenie”
zmienna = 'polecenie [opcja…] argument1 argumenty2…' '
zmienna = '/ścieżka/do/polecenie' '

*** Uwaga: Nie używaj żadnej przestrzeni przed i po równym znaku podczas korzystania z powyższych poleceń.

Wyjście pojedynczego polecenia do zmiennej

Polecenia Bash można używać bez żadnej opcji i argumentu dla tych poleceń, w których te części są opcjonalne. Poniższe dwa przykłady pokazują zastosowania prostego zastąpienia dowodzenia.

Przykład 1:

bash 'data' Polecenie służy do pokazania bieżącej daty i godziny. Poniższy skrypt będzie przechowywać dane wyjściowe 'data' polecenie $bieżąca data zmienna za pomocą podstawienia dowodzenia.

$ current_date = $ (data)
$ echo „Dzisiaj jest $ current_date”

Wyjście:

Przykład nr 2:

„PWD” Polecenie pokazuje ścieżkę bieżącego katalogu roboczego. Poniższy skrypt przechowuje dane wyjściowe „PWD” polecić zmienną, $ current_dir a wartość tej zmiennej jest drukowana przy użyciu 'Echo' Komenda.

$ current_dir = 'pwd'
$ echo „Obecny katalog to: $ current_dir”

Wyjście:

Polecenie z opcją i argumentem

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

Przykład nr 3:

Bash 'toaleta' Polecenie służy do zliczenia całkowitej liczby wierszy, 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.tekst z następującymi danymi do przetestowania następnego skryptu.
owoce.tekst

Mango
Pomarańczowy
Banan
Winogrono
Guawa
Jabłko

Uruchom następujące polecenia, aby się liczyć i przechowywać całkowitą liczbę słów w owoce.tekst Plik do zmiennej, $ frain_words i wydrukuj wartość za pomocą 'Echo' Komenda.

$ frain_words = 'wc -w owoce.tekst'
$ echo "Całkowite słowa w owocach.TXT to $ hrabit_words "

Wyjście:

Przykład nr 4:

'cięcie' to kolejne polecenie bash, które używa opcji i argumentu do wygenerowania danych wyjściowych. Utwórz plik tekstowy o nazwie dzień powszedni.tekst z siedmiotygodniowymi nazwami, aby uruchomić następny skrypt.

dzień powszedni.tekst

Poniedziałek
Wtorek
Środa
Czwartek
Piątek
Sobota
Niedziela

Utwórz plik bash o nazwie CMDSub1.cii z następującym skryptem. W tym skrypcie, chwila pętla służy do odczytania zawartości dzień powszedni.tekst linia pliku po wierszu i odczytaj pierwsze trzy znaki każdego wiersza za pomocą 'cięcie' Komenda. Po cięciu wartość ciągu jest przechowywana w zmiennej $ dzień. Następnie, jeśli instrukcja jest używana do sprawdzenia wartości $ dzień Jest 'Słońce' albo nie. Wyjście wydrukujeNiedziela to święto„Jeśli warunek jest prawdziwy, w przeciwnym razie wydrukuje wartość $ dzień.

CMDSub1.cii

#!/bin/bash
FileName = 'WEDEDDAD.tekst'
podczas linii odczytu; Do
Day = 'echo $ line | Cut -c 1-3 '
Jeśli [$ day == „Sun”]
Następnie
Echo „Niedziela to święto”
w przeciwnym razie
Echo $ dzień
fi
zrobione<$filename

Uruchom skrypt.

$ CAT WEDEKDDAD.tekst
$ bash cmdsub1.cii

Wyjście:

Korzystanie z podstawienia dowodzenia w pętli

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

Przykład nr 5:

Utwórz plik o nazwie CMDSub2.cii z następującym kodem. Tutaj, 'ls -d */„Polecenie służy do pobierania wszystkich listy katalogów z bieżącego katalogu. Do odczytania każdego katalogu z wyjścia używana jest pętla $ dirname który jest wydrukowany później.

CMDSub2.cii

#!/bin/bash
dla dirname in $ (ls -d */)
Do
echo „$ dirname”
zrobione

Uruchom skrypt.

$ bash cmdsub2.cii

Wyjście:

Za pomocą zagnieżdżonych poleceń

Jak możesz używać wielu poleceń za pomocą rury (|), jest pokazany w poprzednim przykładzie. Ale możesz użyć zagnieżdżonych poleceń w podstawieniu dowodzenia, w których wyjście pierwszego polecenia zależy od wyjścia drugiego polecenia i działa przeciwnie do polecenia rur (|).

Zagnieżdżone składnia poleceń:

var = 'Command1 \' Command \ "

Przykład nr 6:

Dwa polecenia ”Echo' I 'Kto„są używane w tym przykładzie jako zagnieżdżone polecenie. Tutaj, 'Kto„Polecenie zostanie najpierw wykonane, aby wydrukować informacje użytkownika aktualnie zalogowanego użytkownika. Wyjście ''Kto„Polecenie zostanie wykonane przez”Echo„polecenie i wyjście”Echo„Będzie przechowywać w zmiennej $ var. Tutaj wyjścieEcho„polecenie zależy od wyjścia”Kto' Komenda.

$ var = 'echo \', kto \ "
$ echo $ var

Wyjście:

Za pomocą ścieżki poleceń

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

Przykład#7:

'kim jestem' Polecenie pokazuje nazwę użytkownika aktualnie zalogowanego użytkownika. Domyślnie to polecenie jest przechowywane w /USR/kosz/ teczka. Uruchom następujący skrypt, aby uruchomić 'kim jestem' polecenie za pomocą ścieżki i magazynu w zmiennej, $ wyjście, i wydrukuj wartość $ wyjście.

$ output = $ (/usr/bin/whoami)
$ echo $ wyjście

Wyjście:

Korzystanie z argumentu wiersza poleceń

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

Przykład#8:

Utwórz plik bash o nazwie CMDSub3.cii z następującym skryptem. 'Basename„Polecenie jest używane tutaj do odzyskania nazwy pliku z 2Nd Argument wiersza poleceń i przechowywany w zmiennej, $ nazwa pliku. Znamy 1St Argument wiersza poleceń to nazwa wykonywania skryptu oznaczonego przez 0 USD.

#!/bin/bash
filename = 'basename $ 1'
echo „Nazwa pliku to $ nazwa pliku."

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

$ bash cmdsub3.SH Desktop/Temp/Hello.tekst

Tutaj, nazwa podstawy ścieżki, Desktop/Temp/Hello.tekst Jest 'Witam.tekst'. Więc wartość $ nazwa pliku będzie Witam.tekst.

Wyjście:

Wniosek:

W tym samouczku pokazano różne zastosowania podstawień dowodzenia. Jeśli chcesz pracować z wieloma poleceniami lub zależne polecenia i przechowywać wynik tymczasowo, aby wykonać inne zadania później, możesz użyć tej funkcji w skrypcie, aby uzyskać wyjście.

Więcej informacji w filmie: