Izhod ukaza BASH na spremenljivko

Bash Command Output Variable



Glede na zahteve uporabnika je treba iz terminala zagnati različne vrste ukazov bash. Ko uporabnik izvede kateri koli ukaz s terminala, potem prikaže izhod, če napaka ne obstaja, sicer prikaže sporočilo o napaki. Včasih je treba izvod ukaza shraniti v spremenljivko za prihodnjo uporabo. V ta namen lahko uporabite funkcijo zamenjave ukaza shell. V tej vadnici je prikazano, kako lahko v to spremenljivko shranite različne vrste ukazov lupine.

spremenljivka= $(ukaz)
spremenljivka= $(ukaz [možnost…]argument1 argumenti2 ...)
spremenljivka= $(/pot/do/ukaz)

ALI







spremenljivka=''ukaz''
spremenljivka=''ukaz [možnost…]argument1 argumenti2 ...''
spremenljivka=`/pot/do/ukaz''

*** Opomba: Pri uporabi zgornjih ukazov ne uporabljajte presledka pred in za znakom enakosti.



Izhod z enim ukazom na spremenljivko

Ukaze bash lahko uporabite brez možnosti in argumentov za tiste ukaze, kjer so ti deli neobvezni. Naslednja dva primera prikazujeta uporabo preproste zamenjave ukazov.



Primer#1:

bash ` datum ` ukaz se uporablja za prikaz trenutnega datuma in ure. Naslednji skript bo shranil izpis ' datum ` ukaz v $ Trenutni datum spremenljivko z uporabo zamenjave ukazov.





$Trenutni datum= $(datum)
$vrgel ven 'Danes je$ current_date'

Izhod:



Primer#2:

`pwd` ukaz prikazuje pot trenutnega delovnega imenika. Naslednji skript shranjuje izpis `pwd` ukaz v spremenljivko, $ current_dir vrednost te spremenljivke se natisne z uporabo `echo` ukaz.

$trenutni_dir=''pwd''
$vrgel ven 'Trenutni imenik je:$ current_dir'

Izhod:

Ukaz z možnostjo in argumentom

Možnost in argument sta za nekatere ukaze bash obvezna. Naslednji primeri prikazujejo, kako lahko shranite rezultat ukaza z možnostjo in argumentom v spremenljivko.

Primer#3:

Bash ` stranišče ukaz se uporablja za štetje skupnega števila vrstic, besed in znakov katere koli datoteke. Ta ukaz uporablja -c, -w in -l kot možnost in ime datoteke kot argument za ustvarjanje izpisa. Ustvarite besedilno datoteko z imenom sadja.txt z naslednjimi podatki za preizkus naslednjega skripta.
sadja.txt

sadja.txt
Mango
Oranžna
Banana
Grozdje
Guava
Apple

Zaženite naslednje ukaze za štetje in shranjevanje skupnega števila besed v datoteki sadja.txt datoteko v spremenljivko, $ count_words in vrednost natisnite z ` odmev` ukaz.

$count_words=''stranišče -vsadja.txt''
$vrgel ven 'Skupno število besed v sadju.txt je$ count_words'

Izhod:

Primer#4:

`cut` je še en ukaz bash, ki uporablja možnost in argument za ustvarjanje izpisa. Ustvarite besedilno datoteko z imenom weekday.txt z imeni sedem tednov za zagon naslednjega skripta.

weekday.txt

Ponedeljek
Torek
Sreda
Četrtek
Petek
Sobota
Nedelja

Ustvarite bash datoteko z imenom cmdsub1.sh z naslednjo pisavo. V tem scenariju medtem zanka se uporablja za branje vsebine weekday.txt datoteko po vrstici in preberite prve tri znake vsake vrstice z ` cut` ukaz. Po rezanju se vrednost niza shrani v spremenljivko $ dan . Nato, če se stavek uporablja za preverjanje vrednosti $ dan je ' Sonce ' ali ne. Izhod bo natisnil ' Nedelja je praznik 'Če je pogoj resničen, bo natisnil vrednost $ dan .

cmdsub1.sh

#!/bin/bash
Ime datoteke='weekday.txt'
medtem prebrativrstica;naredi
dan=''vrgel ven vrstica $ | rezati -c 1-3''
če [ $ dan=='Sonce' ]
potem
vrgel ven 'Nedelja je praznik'
drugače
vrgel ven $ dan
biti
Končano<$ ime datoteke

Zaženite skript.

$mačkaweekday.txt
$bashcmdsub1.sh

Izhod:

Uporaba zamenjave ukazov v zanki

Izhod zamenjave ukazov lahko shranite v katero koli spremenljivko zanke, ki je prikazana v naslednjem primeru.

Primer#5:

Ustvarite datoteko z imenom cmdsub2.sh z naslednjo kodo. Tukaj, ` ls -d * / `ukaz se uporablja za pridobivanje vsega seznama imenikov iz trenutnega imenika. For zanka se tukaj uporablja za branje vsakega imenika iz izhoda in ga shrani v spremenljivko $ dirname ki je natisnjena kasneje.

cmdsub2.sh

#!/bin/bash
za dirname v$(ls -d * /)
naredi
vrgel ven '$ dirname'
Končano

Zaženite skript.

$bashcmdsub2.sh

Izhod:

Uporaba ugnezdenih ukazov

Kako lahko uporabite več ukazov z uporabo pipe (|), je prikazano v prejšnjem primeru. Lahko pa uporabite gnezdene ukaze pri zamenjavi ukazov, kjer je izhod prvega ukaza odvisen od izida drugega ukaza in deluje nasproti ukaza pipe (|).

Sintaksa ugnezdenih ukazov:

kje=''ukaz1 ''ukaz''

Primer#6:

Dva ukaza, ` vrgel ven `in` WHO `se v tem primeru uporabljajo kot ugnezdeni ukaz. Tukaj, ` WHO ukaz se bo najprej izvedel in natisnil podatke o uporabniku trenutno prijavljenega uporabnika. Izhod ` WHO 'ukaz bo izvedel do' vrgel ven `ukaz in izhod ' vrgel ven `shrani v spremenljivko $ var . Tukaj je rezultat ` vrgel ven 'ukaz je odvisen od izpisa' WHO `ukaz.

$kje=''vrgel ven''WHO''
$vrgel ven $ var

Izhod:

Uporaba ukazne poti

Če poznate pot ukaza, ga lahko zaženete tako, da pri uporabi zamenjave ukaza podate pot ukaza. Naslednji primer prikazuje uporabo ukazne poti.

Primer#7:

`whoami` ukaz prikazuje uporabniško ime trenutno prijavljenega uporabnika. Ta ukaz je privzeto shranjen v / usr/ zjutraj/ mapo. Zaženite naslednji skript za zagon ` whoami` ukaz, ki uporablja pot in shrani v spremenljivko, $ izhod, in natisnite vrednost $ izhod .

$izhod= $(/usr/zjutraj/kdo sem jaz)
$vrgel ven $ izhod

Izhod:

Uporaba argumenta ukazne vrstice

Argument ukazne vrstice z ukazom lahko uporabite kot argument pri zamenjavi ukaza.

Primer#8:

Ustvarite bash datoteko z imenom cmdsub3.sh z naslednjo pisavo. ` basename ukaz `se tukaj uporablja za pridobivanje imena datoteke iz 2ndargument ukazne vrstice in shranjen v spremenljivki, $ ime datoteke . Poznamo 1stargument ukazne vrstice je ime izvršnega skripta, ki je označen z $ 0.

#!/bin/bash
Ime datoteke=''basename 1 USD''
vrgel ven 'Ime datoteke je$ ime datoteke. '

Zaženite skript z naslednjo vrednostjo argumenta.

$bashcmdsub3.sh Namizje/temp/hello.txt

Tukaj, osnovno ime poti, Namizje/temp/hello.txt je ' hello.txt «. Torej, vrednost $ ime datoteke bo hello.txt .

Izhod:

Zaključek:

V tej vadnici so prikazane različne uporabe zamenjav ukazov. Če morate delati z več ukazi ali odvisnimi ukazi in začasno shraniti rezultat, da pozneje opravite še kakšno drugo nalogo, lahko to funkcijo uporabite v svojem skriptu, da dobite izhod.

Več informacij v videu: