Bash Subshells

Bash Subshells



Néha egy vagy több parancsot vagy szkriptet kell futtatnia a háttérben. Ezt a feladatot úgy hajthatja végre, hogy minden parancsot vagy szkriptet egy szkriptfájlba ír, és a fájlt és (&) használatával hajtja végre, vagy végrehajtja a parancsokat vagy szkripteket az aktuális shellből az alhéjba. Az alhéj több parancs vagy szkript végrehajtására használható a $() vagy a backtick (`) bezárásával. A Bash alhéj használatának módszerei ebben az oktatóanyagban láthatók.

Különböző példák az alhéjra

Az oktatóanyag ezen része bemutatja a szkript végrehajtásának különböző módjait az alhéjban.

1. példa: Hajtsa végre az alhéjat az egyszeri idézet és a kettős idézet használatával

Hozzon létre egy Bash-fájlt a következő szkripttel, amely kinyomtatja az aktuális dátumot és időt. Ezután a $strVal változót úgy nyomtatja ki, hogy az alhéj-szkriptet az egyszeres és a dupla idézőjelek közé zárja.







#!/bin/bash

#Nyomtassa ki a 'dátum' parancsot az alhéjban

visszhang 'Ma van 'dátum'. '

#Határozzon meg egy karakterlánc-változót

strVal = 'Bash Subshell'

#Nyomtassa ki a változót az alhéjban szimpla idézőjelekkel

visszhang 'Az egyetlen idézőjel kimenete:' '$(echo $strVal)'

#Nyomtassa ki a változót az alhéjban dupla idézőjelekkel

visszhang 'Az idézőjelek kimenete:' ' $(echo $strVal) '

A következő kimenet jelenik meg a szkript végrehajtása után. Az alhéj-szkriptet a rendszer karakterláncként nyomtatja ki, ha egyetlen idézőjelbe zárja. Az alhéj-szkript akkor fut le, ha dupla idézőjelek közé tartozik:





2. példa: Keresés az adott kiterjesztés összes fájljában az alhéj használatával

Hozzon létre egy Bash-fájlt a következő szkripttel, amely a fájl kiterjesztését veszi be a felhasználótól. Ezután az „ls” parancs végrehajtásra kerül az alhéjban, hogy megkeresse az adott kiterjesztésű összes fájlt.





#!/bin/bash

visszhang -n 'Írja be a fájlkiterjesztés nevét:'

#Vegye ki a keresni kívánt fájlkiterjesztés nevét

olvas ext

#Ellenőrizze a bemeneti értéket

ha [ [ $ext == '' ] ] ; akkor

#Hibaüzenet nyomtatása

visszhang – Hosszabbítást nem adnak.

más

visszhang 'Fájlnevek ezzel $ext kiterjesztés:'

#Nyomtassa ki az összes fájlnevet a megadott kiterjesztéssel

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

lenni

A következő kimenet jelenik meg a szkript „txt” bemenettel történő végrehajtása után. A kimenet szerint három szövegfájl létezik az aktuális helyen:



A következő kimenet jelenik meg az üres értékű szkript végrehajtása után:

3. példa: Végezze el az aritmetikai kifejezést az alhéjban

Hozzon létre egy Bash fájlt a következő szkripttel, ahol az azonos nevű változót használja a fő shellben és az alhéjban. Az aritmetikai műveletet a főhéj és az alhéj határozza meg.

#!/bin/bash

#Határozzon meg egy szülő shell-változót

szám = 10

#Nyomtassa ki az eredményt a szülő shell változója alapján

( ( eredmény = $szám + 5 ) )

visszhang 'Az összeg $szám +5= $eredmény '

#Hozzon létre egy alhéj-változót a szülő shell azonos nevével

( szám = húsz ; ( ( eredmény = $szám + 10 ) ) ; visszhang 'Az összeg $szám +5= $eredmény ' )

#Nyomtassa ki újra az eredményt a szülő shell változója alapján

visszhang 'Az összeg $szám +5= $eredmény '

A következő kimenet jelenik meg a szkript végrehajtása után. Az első és az utolsó kimenet a fő shell eredményét mutatja. A második kimenet az alhéj eredményét mutatja. A fő shell változóját nem módosítja az alhéj változója:

4. példa: Több parancs végrehajtása az alhéjban

Hozzon létre egy Bash-fájlt a következő szkripttel, amely elküldi az „echo” parancs kimenetét a „sed” parancsba, amely lecseréli a megfelelő karakterlánc-értéket egy másik karakterláncra. Az „echo” parancs kimenete „JavaScript”. Tehát ezt az értéket a „Java” és a „JavaScript” értékkel hasonlítjuk össze. Ha talál egyezést, a megfelelő karakterláncokat a „Típus” karakterlánc helyettesíti.

#!/bin/bash

#Határozzon meg egy karakterlánc értéket

strVal = 'JavaScript'

#Nyomtassa ki az eredeti karakterlánc értékét

visszhang 'Karakterlánc értéke: $strVal '

#Nyomtassa ki az alhéj értékét

visszhang -n 'Subshell értéke: '

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

A következő kimenet jelenik meg a szkript végrehajtása után. A kimenet szerint a „Java” karakterláncot a „Type” karakterlánc váltja fel. Az alhéj kimenete „JavaScript TypeScript”:


Következtetés

Egy vagy több parancs vagy parancsfájl végrehajtható az alhéj használatával anélkül, hogy a fő shellt érintené. Az alhéj használatának céljait ez az oktatóanyag több példán keresztül ismerteti. A különböző típusú feladatokat, mint például a fájlok keresése, a számok összegének kiszámítása, a karakterláncok cseréje, stb. a megadott példákban az alhéj végzi el. Az alhéj használatának koncepciója megfelelően bemutatásra került, és az új Bash-felhasználók az oktatóanyag elolvasása után most már használhatják az alhéjat.