Izlaz naredbe BASH u varijablu

Bash Command Output Variable

Različite vrste bash naredbi moraju se izvoditi s terminala ovisno o zahtjevima korisnika. Kada korisnik pokrene bilo koju naredbu s terminala, tada prikazuje izlaz ako nema pogreške, u protivnom prikazuje poruku o pogrešci. Ponekad je izlaz naredbe potrebno pohraniti u varijablu za buduću upotrebu. Značajka zamjene naredbe ljuske bash -a može se koristiti u tu svrhu. Kako možete spremiti različite vrste naredbi ljuske u varijablu pomoću ove značajke prikazano je u ovom vodiču.

promjenjiva= $(naredba)
promjenjiva= $(naredba [opcija…]argument1 argument2 ...)
promjenjiva= $(/staza/do/naredba)

ILI



promjenjiva=``naredba``
promjenjiva=``naredba [opcija…]argument1 argument2 ...``
promjenjiva=`/staza/do/naredba``

*** Napomena: Nemojte koristiti razmak prije i poslije znaka jednakosti kada koristite gornje naredbe.



Izlaz jedne naredbe na varijablu

Bash naredbe mogu se koristiti bez ikakve opcije i argumenta za one naredbe gdje su ti dijelovi izborni. Sljedeća dva primjera pokazuju uporabu jednostavne zamjene naredbi.



Primjer 1:

bash ` datum` naredba se koristi za prikaz trenutnog datuma i vremena. Sljedeća skripta pohranit će ispis ` datum` naredite u $ trenutni datum varijabla pomoću zamjene naredbi.

$trenutni datum= $(datum)
$izbaciti 'Danas je$ current_date'

Izlaz:



Primjer 2:

`pwd` naredba prikazuje putanju trenutnog radnog imenika. Sljedeća skripta pohranjuje izlaz `pwd` naredba u varijablu, $ current_dir a vrijednost ove varijable ispisuje se pomoću `odjek` naredba.

$trenutni_dir=``pwd``
$izbaciti 'Trenutni direktorij je:$ current_dir'

Izlaz:

Naredba s opcijom i argumentom

Opcija i argument su obvezni za neke bash naredbe. Sljedeći primjeri pokazuju kako možete pohraniti izlaz naredbe s opcijom i argumentom u varijablu.

Primjer 3:

Bash ` zahod naredba se koristi za brojanje ukupnog broja redaka, riječi i znakova bilo koje datoteke. Ova naredba koristi -c, -w i -l kao opciju i naziv datoteke kao argument za generiranje izlaza. Napravite tekstualnu datoteku pod nazivom plodovi.txt sa sljedećim podacima za testiranje sljedeće skripte.
plodovi.txt

plodovi.txt
Mango
naranča
Banana
Grožđe
Guava
Jabuka

Pokrenite sljedeće naredbe za brojanje i pohranjivanje ukupnog broja riječi u plodovi.txt datoteku u varijablu, $ count_words i ispišite vrijednost pomoću ` odjek` naredba.

$count_words=``zahod -uplodovi.txt``
$izbaciti 'Ukupno riječi u plodovima.txt je$ count_words'

Izlaz:

Primjer#4:

`rezati` je još jedna bash naredba koja koristi opciju i argument za generiranje izlaza. Napravite tekstualnu datoteku pod nazivom weekday.txt s imenima sedam dana u tjednu za pokretanje sljedeće skripte.

weekday.txt

ponedjeljak
utorak
srijeda
četvrtak
petak
subota
nedjelja

Napravite bash datoteku pod nazivom cmdsub1.sh sa sljedećom skriptom. U ovom scenariju, dok loop koristi se za čitanje sadržaja weekday.txt datoteku redak po redak i pročitajte prva tri znaka svakog retka pomoću ` izrezati ` naredba. Nakon rezanja, vrijednost niza sprema se u varijablu $ dan . Zatim, Ako se naredba koristi za provjeru vrijednosti $ dan je ' Sunce' ili ne. Izlaz će se ispisati ' Nedjelja je praznik 'Kada će, ako je uvjet istinit, ispisati vrijednost $ dan .

cmdsub1.sh

#!/bin/bash
naziv datoteke='weekday.txt'
dok čitaticrta;čini
dan=``izbaciti linija $ | izrezati -c 1-3``
ako [ $ dan=='Sunce' ]
zatim
izbaciti 'Nedjelja je praznik'
drugo
izbaciti $ dan
biti
učinjeno<$ naziv datoteke

Pokrenite skriptu.

$mačkaweekday.txt
$bashcmdsub1.sh

Izlaz:

Korištenje zamjenske naredbe u petlji

Izlaz zamjenske naredbe možete pohraniti u bilo koju varijablu petlje koja je prikazana u sljedećem primjeru.

Primjer 5:

Napravite datoteku pod nazivom cmdsub2.sh sa sljedećim kodom. Ovdje, ` ls -d * / `naredba se koristi za dohvaćanje svih popisa direktorija iz trenutnog direktorija. For petlja se ovdje koristi za čitanje svakog direktorija s izlaza i spremanje u varijablu $ dirname koji se kasnije tiska.

cmdsub2.sh

#!/bin/bash
za dirname u$(ls -d * /)
čini
izbaciti '$ dirname'
učinjeno

Pokrenite skriptu.

$bashcmdsub2.sh

Izlaz:

Korištenje ugniježđenih naredbi

Kako možete koristiti više naredbi pomoću pipe (|) prikazano je u prethodnom primjeru. No, možete koristiti ugniježđene naredbe u zamjeni naredbi gdje izlaz prve naredbe ovisi o rezultatu druge naredbe i radi suprotno od naredbe pipe (|).

Ugniježđena sintaksa naredbe:

gdje=``naredba1 ``naredba``

Primjer#6:

Dvije naredbe, ` izbaciti `i` tko `se u ovom primjeru koriste kao ugniježđena naredba. Ovdje, ` tko `naredba će se prvo izvršiti i ispisati podatke o korisniku trenutno prijavljenog korisnika. Izlaz ` tko `naredba će se izvršiti do` izbaciti `naredba i izlaz` izbaciti `pohranit će se u varijablu $ var . Ovdje je izlaz ` izbaciti naredba `ovisi o ispisu` tko `naredba.

$gdje=``izbaciti``tko``
$izbaciti $ var

Izlaz:

Korištenje naredbenog puta

Ako znate put naredbe, tada možete pokrenuti naredbu tako da navedete stazu naredbe kada koristite zamjenu naredbe. Sljedeći primjer prikazuje upotrebu naredbenog puta.

Primjer#7:

`whoami` naredba prikazuje korisničko ime trenutno prijavljenog korisnika. Prema zadanim postavkama ova je naredba pohranjena u / usr/ ujutro/ mapu. Pokrenite sljedeću skriptu za pokretanje ` whoami` naredba koja koristi path i spremi u varijablu, $ izlaz, i ispisati vrijednost $ izlaz .

$izlaz= $(/usr/am/tko sam ja)
$izbaciti $ izlaz

Izlaz:

Korištenje argumenta naredbenog retka

Argument naredbenog retka s naredbom možete koristiti kao argument u zamjeni naredbe.

Primjer 8:

Napravite bash datoteku pod nazivom cmdsub3.sh sa sljedećom skriptom. ` naziv baze Naredba `ovdje se koristi za dohvaćanje naziva datoteke iz 2ndargument naredbenog retka i pohranjen u varijabli, $ naziv datoteke . Znamo 1svargument naredbenog retka naziv je izvršne skripte označen sa $ 0.

#!/bin/bash
naziv datoteke=``naziv baze 1 USD``
izbaciti 'Naziv datoteke je$ naziv datoteke. '

Pokrenite skriptu sa sljedećom vrijednošću argumenta.

$bashcmdsub3.sh Desktop/temp/hello.txt

Ovdje, osnovno ime staze, Desktop/temp/hello.txt je ' hello.txt ’. Dakle, vrijednost $ naziv datoteke bit će hello.txt .

Izlaz:

Zaključak:

U ovom vodiču prikazane su različite namjene zamjene naredbi. Ako trebate raditi s više naredbi ili ovisnih naredbi i privremeno pohraniti rezultat kako biste kasnije izvršili neke druge zadatke, možete koristiti ovu značajku u skripti za dobivanje rezultata.

Više informacija u videu: