Bash Subshells

Bash Subshells



Joskus se edellyttää yhden tai useamman komennon tai komentosarjan suorittamista taustalla. Tämä tehtävä voidaan tehdä kirjoittamalla kaikki komennot tai komentosarjat komentosarjatiedostoon ja suorittamalla tiedosto käyttämällä et-merkkiä (&) tai suorittamalla komennot tai komentosarjat alikuoreen nykyisestä komentotulkista. Alikuorta voidaan käyttää useiden komentojen tai komentosarjojen suorittamiseen liittämällä siihen $() tai backticks (`). Tässä opetusohjelmassa esitetään Bash-alikuoren käyttötavat.

Erilaisia ​​esimerkkejä Subshellistä

Tässä opetusohjelman osassa esitetään eri tavat suorittaa komentosarja alikuoressa.

Esimerkki 1: Suorita alikuori käyttämällä yhtä lainausta ja kaksoislainausta

Luo Bash-tiedosto seuraavalla komentosarjalla, joka tulostaa nykyisen päivämäärän ja kellonajan. Seuraavaksi tulostetaan $strVal-muuttuja sisällyttämällä alikärjekirjoitus yksittäisiin lainausmerkkeihin ja kaksoislainausmerkkeihin.







#!/bin/bash

#Tulosta `date` -komento alikuoreen

kaiku 'Tänään on `päivämäärä` '

#Määritä merkkijonomuuttuja

strVal = 'Bash Subshell'

#Tulosta alikuoren muuttuja yksittäisillä lainausmerkeillä

kaiku 'Yksittäisten lainausmerkkien tulos:' '$(echo $strVal)'

#Tulosta alikuoren muuttuja lainausmerkeillä

kaiku 'Lainausmerkkien tulos:' ' $(echo $strVal) '

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Subshell-skripti tulostetaan merkkijonona, kun se on liitetty yksittäisiin lainausmerkkeihin. Subshell-skripti suoritetaan, kun sen sisällä on lainausmerkit:





Esimerkki 2: Etsi kaikki tietyn laajennuksen tiedostot alikärjellä

Luo Bash-tiedosto seuraavalla komentosarjalla, joka ottaa tiedostotunnisteen syötteenä käyttäjältä. Seuraavaksi 'ls'-komento suoritetaan alikuoressa etsimään kaikki kyseisen laajennuksen tiedostot.





#!/bin/bash

kaiku -n 'Anna tiedostopäätteen nimi:'

#Ota haettava tiedostopääte

lukea alanumero

#Tarkista syöttöarvo

jos [ [ $ulk == '' ] ] ; sitten

#Tulosta virheilmoitus

kaiku 'Pidennystä ei anneta.'

muu

kaiku 'Tiedostonimet kanssa $ulk laajennus:'

#Tulosta kaikki tiedostonimet annetulla tunnisteella

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

olla

Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu 'txt'-syötteellä. Tulosteen mukaan nykyisessä sijainnissa on kolme tekstitiedostoa:



Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu tyhjällä arvolla:

Esimerkki 3: Suorita aritmeettinen lauseke alikuoressa

Luo Bash-tiedosto seuraavalla skriptillä, jossa samannimistä muuttujaa käytetään pääkuoressa ja alikärjessä. Aritmeettinen operaatio määritellään pää- ja alikuoressa.

#!/bin/bash

#Määritä ylätason kuorimuuttuja

määrä = 10

#Tulosta tulos pääkuoren muuttujan perusteella

( ( tulos = $numero + 5 ) )

kaiku 'Summa $numero +5= $tulos '

#Luo alikuorimuuttuja, jolla on sama nimi kuin pääkuoren

( määrä = kaksikymmentä ; ( ( tulos = $numero + 10 ) ) ; kaiku 'Summa $numero +5= $tulos ' )

#Tulosta tulos uudelleen emotuoren muuttujan perusteella

kaiku 'Summa $numero +5= $tulos '

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Ensimmäinen ja viimeinen tulos näyttävät pääkuoren tuloksen. Toinen tulos näyttää alikuoren tuloksen. Pääkuoren muuttujaa ei muuteta alikuoren muuttujalla:

Esimerkki 4: Suorita useita komentoja alikuoressa

Luo Bash-tiedosto seuraavalla komentosarjalla, joka lähettää 'echo'-komennon tulosteen 'sed'-komentoon, joka korvaa vastaavan merkkijonon arvon toisella merkkijonolla. 'Echo'-komennon tulos on 'JavaScript'. Joten tätä arvoa verrataan 'Javaan' ja 'JavaScriptiin'. Jos vastaavuus löytyy, vastaavat merkkijonot korvataan 'Type'-merkkijonolla.

#!/bin/bash

#Määritä merkkijonoarvo

strVal = 'JavaScript'

#Tulosta alkuperäinen merkkijonoarvo

kaiku 'Merkkijonoarvo: $strVal '

#Tulosta alikuoren arvo

kaiku -n 'Subshell-arvo:'

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

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tulosteen mukaan 'Java'-merkkijono korvataan 'Type'-merkkijonolla. Alakuoren tulos on 'JavaScript TypeScript':


Johtopäätös

Yksi tai useampi komento tai komentosarja voidaan suorittaa käyttämällä alikuorta vaikuttamatta pääkuoreen. Alakuoren käyttötarkoitukset selitetään tässä opetusohjelmassa useiden esimerkkien avulla. Eri tyyppiset tehtävät, kuten tiedostojen etsiminen, lukujen summan laskeminen, merkkijonojen korvaaminen jne., suoritetaan annetuissa esimerkeissä alikärjellä. Alikuoren käyttökonsepti on asianmukaisesti esitelty, ja uudet Bash-käyttäjät voivat nyt käyttää alikuorta tämän opetusohjelman luettuaan.