Podlupine Bash

Podlupine Bash



Včasih zahteva, da v ozadju zaženete enega ali več ukazov ali skriptov. To nalogo lahko opravite tako, da vse ukaze ali skripte zapišete v skriptno datoteko in datoteko izvedete z znakom & (&) ali izvedete ukaze ali skripte v podlupino iz trenutne lupine. Podlupino lahko uporabite za izvajanje več ukazov ali skriptov tako, da jih obdate z $() ali povratnimi kljukicami (`). Metode uporabe podlupine Bash so prikazane v tej vadnici.

Različni primeri podlupine

V tem delu vadnice so prikazani različni načini izvajanja skripta v podlupini.

Primer 1: Izvedite podlupino z enojnim in dvojnim narekovajem

Ustvarite datoteko Bash z naslednjim skriptom, ki natisne trenutni datum in uro. Nato se spremenljivka $strVal natisne tako, da se skript podlupine zapre med enojne in dvojne narekovaje.







#!/bin/bash

#Natisnite ukaz `datum` v podlupini

odmev 'Danes je `datum` '

#Definiraj spremenljivko niza

strVal = 'Bash Subshell'

#Natisnite spremenljivko v podlupini z enojnimi narekovaji

odmev 'Izhod enojnih narekovajev:' '$(echo $strVal)'

#Natisnite spremenljivko v podlupini z uporabo dvojnih narekovajev

odmev 'Izpis dvojnih narekovajev:' ' $(echo $strVal) '

Po izvedbi skripta se prikaže naslednji rezultat. Skript podlupine je natisnjen kot niz, ko je obdan z enojnimi narekovaji. Skript podlupine se izvede, ko je obdan z dvojnimi narekovaji:





2. primer: Iskanje vseh datotek z določeno končnico z uporabo podlupine

Ustvarite datoteko Bash z naslednjim skriptom, ki vzame končnico datoteke kot vnos uporabnika. Nato se v podlupini izvede ukaz »ls« za iskanje po vseh datotekah te določene pripone.





#!/bin/bash

odmev -n 'Vnesite ime pripone datoteke:'

#Vzemite ime končnice datoteke, ki jo boste iskali

prebrati ext

#Preverite vneseno vrednost

če [ [ $ext == '' ] ] ; potem

#Natisni sporočilo o napaki

odmev 'Podaljšanje ni dano.'

drugače

odmev 'Imena datotek z $ext razširitev:'

#Natisni vsa imena datotek z dano končnico

odmev ' $( echo `ls *.$ext` ) '

biti

Naslednji izhod se prikaže po izvedbi skripta z vnosom »txt«. Glede na izhod obstajajo tri besedilne datoteke na trenutni lokaciji:



Po izvedbi skripta s prazno vrednostjo se prikaže naslednji rezultat:

Primer 3: Izvedite aritmetični izraz v podlupini

Ustvarite datoteko Bash z naslednjim skriptom, kjer je istoimenska spremenljivka uporabljena v glavni in podlupini. Aritmetična operacija je definirana v glavni in podlupini.

#!/bin/bash

#Definirajte nadrejeno spremenljivko lupine

število = 10

#Natisni rezultat na podlagi spremenljivke nadrejene lupine

( ( rezultat = $število + 5 ) )

odmev 'Vsota $število +5= $rezultat '

#Ustvarite spremenljivko podlupine z enakim imenom nadrejene lupine

( število = dvajset ; ( ( rezultat = $število + 10 ) ) ; odmev 'Vsota $število +5= $rezultat ' )

#Znova natisnite rezultat na podlagi spremenljivke nadrejene lupine

odmev 'Vsota $število +5= $rezultat '

Po izvedbi skripta se prikaže naslednji rezultat. Prvi in ​​zadnji izhod prikazujeta rezultat glavne lupine. Drugi izhod prikazuje rezultat podlupine. Spremenljivka glavne lupine ni spremenjena s spremenljivko podlupine:

Primer 4: Izvedite več ukazov v podlupini

Ustvarite datoteko Bash z naslednjim skriptom, ki pošlje izhod ukaza »echo« v ukaz »sed«, ki nadomesti vrednost ujemajočega niza z drugim nizom. Izhod ukaza »echo« je »JavaScript«. Torej se ta vrednost primerja z »Java« in »JavaScript«. Če se najde ujemanje, se ujemajoči nizi nadomestijo z nizom »Vrsta«.

#!/bin/bash

#Določite vrednost niza

strVal = 'JavaScript'

#Natisni izvirno vrednost niza

odmev 'Vrednost niza: $strVal '

#Natisni vrednost podlupine

odmev -n 'Vrednost podlupine: '

odmev ' $(echo $strVal | sed 's|Java|JavaScript Type|') '

Po izvedbi skripta se prikaže naslednji rezultat. V skladu z izhodom je niz »Java« nadomeščen z nizom »Type«. Izhod podlupine je »JavaScript TypeScript«:


Zaključek

Enega ali več ukazov ali skriptov je mogoče izvesti z uporabo podlupine, ne da bi to vplivalo na glavno lupino. Nameni uporabe podlupine so v tej vadnici razloženi z več primeri. Različne vrste nalog, kot so iskanje po datotekah, računanje vsote števil, zamenjava nizov itd., opravlja podlupina v navedenih primerih. Koncept uporabe podlupine je pravilno prikazan in novi uporabniki Bash bodo zdaj lahko uporabljali podlupino, ko bodo prebrali to vadnico.