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
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
ponedjeljakutorak
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/bashnaziv 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/bashza dirname u$(ls -d * /)
čini
izbaciti '$ dirname'
učinjeno
Pokrenite skriptu.
$bashcmdsub2.shIzlaz:
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/bashnaziv datoteke=``naziv baze 1 USD``
izbaciti 'Naziv datoteke je$ naziv datoteke. '
Pokrenite skriptu sa sljedećom vrijednošću argumenta.
$bashcmdsub3.sh Desktop/temp/hello.txtOvdje, 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: