BASH parancs kimenet a változóhoz

Bash Command Output Variable



Különféle típusú bash parancsokat kell futtatni a terminálról a felhasználó igényei alapján. Amikor a felhasználó bármilyen parancsot futtat a terminálról, akkor megjeleníti a kimenetet, ha nincs hiba, ellenkező esetben a hibaüzenetet jeleníti meg. Néha a parancs kimenetét egy változóban kell tárolni a későbbi használatra. Erre a célra használható a bash Shell parancs helyettesítési funkciója. Ez a bemutató bemutatja, hogyan tárolhat különböző típusú shell parancsokat a változóba ezzel a funkcióval.

változó= $(parancs)
változó= $(parancs [választási lehetőség…]argumentum1 argumentum2 ...)
változó= $(/pálya/nak nek/parancs)

VAGY







változó=``parancs``
változó=``parancs [választási lehetőség…]argumentum1 argumentum2 ...``
változó=`/pálya/nak nek/parancs``

*** Megjegyzés: A fenti parancsok használatakor ne használjon szóközt az egyenlőségjel előtt és után.



Egy parancs kimenet egy változóra

A Bash parancsok opció és érv nélkül használhatók azokhoz a parancsokhoz, ahol ezek a részek nem kötelezőek. Az alábbi két példa az egyszerű parancshelyettesítés alkalmazását mutatja be.



1. példa:

bash ` dátum ' parancs az aktuális dátum és idő megjelenítésére szolgál. A következő parancsfájl tárolja a `kimenetét dátum ' paranccsal $ mostani dátum változó a parancshelyettesítés használatával.





$mostani dátum= $(dátum)
$kidobta 'Ma van$ current_date'

Kimenet:



2. példa:

`pwd` parancs az aktuális munkakönyvtár elérési útját mutatja. A következő parancsfájl tárolja a kimenetét `pwd` parancsot a változóba, $ current_dir és ennek a változónak az értékét a segítségével nyomtatjuk ki 'visszhang' parancs.

$aktuális_cím=``pwd``
$kidobta 'Az aktuális könyvtár:$ current_dir'

Kimenet:

Parancs opcióval és érvvel

Az opció és az argumentum kötelező néhány bash parancshoz. A következő példák bemutatják, hogyan tárolhatja a parancs kimenetét opcióval és argumentummal egy változóban.

3. példa:

Bash ` WC parancs a fájlok összes sorának, szavának és karakterének számolására szolgál. Ez a parancs a -c, -w és -l opciót használja, a fájlnév pedig argumentumként a kimenet létrehozásához. Hozzon létre egy szöveges fájlt gyümölcsök.txt a következő adatokkal a következő szkript teszteléséhez.
gyümölcsök.txt

gyümölcsök.txt
Mangó
narancssárga
Banán
Szőlő
Gujávafa
alma

Futtassa a következő parancsokat, hogy megszámolja és tárolja a szavak teljes számát a gyümölcsök.txt fájlt egy változóba, $ count_words és nyomtassa ki az értéket a `gombbal visszhang` parancs.

$count_words=``WC -ban bengyümölcsök.txt``
$kidobta 'Összes szó a fruit.txt -ben$ count_words'

Kimenet:

4. példa:

`vágott` egy másik bash parancs, amely opciót és argumentumot használ a kimenet létrehozásához. Hozzon létre egy szöveges fájlt hétköznap.txt hét hétköznapi nevekkel a következő szkript futtatásához.

hétköznap.txt

hétfő
kedd
szerda
csütörtök
péntek
szombat
vasárnap

Hozzon létre egy bash fájlt cmdsub1.sh a következő forgatókönyvvel. Ebben a szkriptben míg ciklus a tartalom olvasására szolgál hétköznap.txt fájl soronként, és olvassa el az egyes sorok első három karakterét a `gombbal vágni` parancs. A vágás után a karakterlánc értéke a változóban tárolódik $ nap . Következő: Ha az utasítást a (z) értékének ellenőrzésére használják $ nap ' Nap' vagy nem. A kimenet kinyomtatódik ' Vasárnap az ünnep „Amikor a feltétel egyébként igaz, akkor kinyomtatja az értékét $ nap .

cmdsub1.sh

#!/bin/bash
fájl név='weekday.txt'
míg olvasvonal;tedd
nap=``kidobta $ sor | vágott -c 1-3``
ha [ $ nap=='Nap' ]
azután
kidobta 'Vasárnap az ünnep'
más
kidobta $ nap
lenni
Kész<$ fájlnév

Futtassa a szkriptet.

$macskahétköznap.txt
$bashcmdsub1.sh

Kimenet:

Parancshelyettesítés használata a hurokban

A parancshelyettesítés kimenetét tetszőleges ciklusváltozóba tárolhatja, amely a következő példában látható.

5. példa:

Hozzon létre egy nevű fájlt cmdsub2.sh a következő kóddal. Tessék, ` ls -d * / `parancs az összes könyvtárlista lekérésére szolgál az aktuális könyvtárból. A ciklus itt használható minden könyvtár kiolvasására a kimenetről, és tárolására a változóban $ dirname amelyet később nyomtatnak ki.

cmdsub2.sh

#!/bin/bash
számára dirname ban ben$(ls -d * /)
tedd
kidobta '$ dirname'
Kész

Futtassa a szkriptet.

$bashcmdsub2.sh

Kimenet:

Beágyazott parancsok használata

Az előző példában bemutatjuk, hogyan használhat több parancsot a pipe (|) használatával. De használhat egymásba ágyazott parancsokat a parancshelyettesítésben, ahol az első parancs kimenete a második parancs kimenetétől függ, és a pipe (|) paranccsal szemben működik.

Beágyazott parancs szintaxisa:

ahol=``parancs1 ``parancs``

6. példa:

Két parancs, ` kidobta `és` ki `ebben a példában beágyazott parancsként használatosak. Tessék, ` ki `parancs hajt végre először, amely kinyomtatja az éppen bejelentkezett felhasználó felhasználói adatait. A `kimenete ki `parancs végrehajtódik` kidobta `parancs és a` kimenete kidobta `tárolja a változóban $ var . Itt a `kimenete kidobta `parancs a` kimenetétől függ ki `parancs.

$ahol=``kidobta``ki``
$kidobta $ var

Kimenet:

A parancssori útvonal használata

Ha ismeri a parancs útvonalát, akkor futtathatja a parancsot a parancs útvonalának megadásával, amikor a parancs helyettesítését használja. A következő példa a parancssori elérési út használatát mutatja be.

Példa#7:

`whoami` parancs az éppen bejelentkezett felhasználó felhasználónevét mutatja. Alapértelmezés szerint ez a parancs itt van tárolva / usr/ am/ mappa. Futtassa a következő parancsfájlt ` whoami` parancs az elérési út és tároló használatával a változóban, $ kimenet, és nyomtassa ki az értékét $ kimenet .

$Kimenet= $(/usr/am/Ki vagyok én)
$kidobta $ kimenet

Kimenet:

Parancssor argumentum használata

A parancssori argumentumot a paranccsal használhatja argumentumként a parancshelyettesítésben.

8. példa:

Hozzon létre egy bash fájlt cmdsub3.sh a következő forgatókönyvvel. ` alapnév `parancs itt a fájlnév lekérésére szolgál a 2 -bőlndparancssori argumentum és a változóban tárolva, $ fájlnév . Ismerjük az 1utcaparancssori argumentum a végrehajtó parancsfájl neve, amelyet $ 0 jelöl.

#!/bin/bash
fájl név=``alapnév $ 1``
kidobta - A fájl neve$ fájlnév. '

Futtassa a szkriptet a következő argumentumértékkel.

$bashcmdsub3.sh Asztal/hőmérséklet/hello.txt

Itt, az alapnév az ösvényről, Asztali/temp/hello.txt ' hello.txt ’. Tehát az értéke $ fájlnév lesz hello.txt .

Kimenet:

Következtetés:

Ebben az oktatóanyagban a parancshelyettesítések különböző felhasználási módjait mutatjuk be. Ha több paranccsal vagy függő parancsokkal kell dolgoznia, és ideiglenesen tárolja az eredményt, hogy később más feladatokat elvégezzen, akkor ezt a funkciót használhatja a szkriptben a kimenet megszerzéséhez.

További információ a videóban: