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
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/bashfá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/bashszámára dirname ban ben$(ls -d * /)
tedd
kidobta '$ dirname'
Kész
Futtassa a szkriptet.
$bashcmdsub2.shKimenet:
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/bashfá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.txtItt, 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: