Hogyan kell kezelni a parancssori érveket egy bash -szkriptben

How Handle Command Line Arguments Bash Script



Sok esetben a bash szkriptek argumentumértékeket igényelnek a szkript beviteli beállításainak megadásához. A parancssori argumentumokat kétféleképpen kezelheti bash szkriptben. Az egyik a használata argumentum változók a másik pedig a használatával felszáll funkció. Ez a bemutató bemutatja, hogyan kezelheti a parancssori argumentumokat.

Az érvváltozók használata:

Az érvváltozó 0 dollárról indul. A fő szkriptfájl neve $ 0 -ban van tárolva, amely argumentumértékeket kap a parancssori argumentumokból. Ha két argumentum kerül átadásra a parancssorban, akkor az argumentumértékek egymás után érkeznek $ 1 és $ 2 változókba.







Példa: Három numerikus érték elküldése argumentumként

Hozzon létre egy bash fájlt, és adja hozzá a következő kódot. A szkript három argumentumértéket kap, és 1, 2 és 3 dollárban tárolja. Megszámolja az összes argumentumot, kinyomtatja az argumentumértékeket hurokkal és ciklus nélkül. Végül nyomtassa ki az összes argumentumérték összegét.



#!/bin/bash

# Az összes érv számolása
kidobta 'Az érvek teljes száma: $#'

# Az érvértékek egyéni olvasása
kidobta 'Első érv értéke: $ 1'
kidobta 'Második érv értéke: $ 2'
kidobta 'Harmadik érv értéke: $ 3'

# Argumentumok olvasása ciklus segítségével
számáraargvalban ben '[email protected]'
tedd
kidobta -n '$ argval'
Kész

# Argumentumok hozzáadása
összeg= $(($ 1+2 USD+$ 3))

# nyomtassa ki az eredményt
kidobta -És ' nÖsszeg eredménye =$ összeg'

Futtassa a bash fájlt három numerikus argumentumértékkel.



$bashcmdline1.shötven 35 tizenöt





-2. Példa: Fájlnév argumentumként való felvétele

Hozzon létre egy bash fájlt, és adja hozzá a következő kódot a fájlok összes karakterének számításához. Itt a fájlnév kerül átadásra parancssori argumentumként.

#!/bin/bash
fájl név=$ 1
totalchar=``WC -c $ fájlnév``
kidobta 'A karakterek teljes száma$totalchar'

Futtassa a bash szkriptet a fájlnévvel egyetlen argumentum értékként, és futtasson egy másik parancsot az adott fájl összes karakterének ellenőrzéséhez. Itt az alkalmazott.txt fájlt használják argumentumértékként. Az alkalmazott.txt fájl teljes karaktere 204 karakter.



$bashcmdline2.sh alkalmazott.txt
$WC -calkalmazott.txt

A getopts funkció használata:

Ha adatokat szeretne tárolni adatbázisban vagy bármilyen fájlban, vagy jelentést szeretne készíteni egy adott formátumról a parancssori argumentumok értékei alapján, akkor felszáll funkció a legjobb megoldás a feladat elvégzésére. Ez egy beépített linux funkció. Tehát könnyen használhatja ezt a funkciót a parancsfájljában a formázott adatok parancssorból történő olvasásához.

Példa: Az érvek olvasása a getopts függvény segítségével

Hozzon létre egy bash fájlt, és adja hozzá a következő szkriptet a használat megértéséhez felszáll funkció. A „getopts” függvényt a while ciklusban használják a parancssori argumentumok és argumentumértékek olvasásához. Itt 4 opciót használunk „Én”, „n”, „m” és 'És' . case utasítás az adott opció illesztésére és az argumentum értékének egy változóban való tárolására szolgál. Végül nyomtassa ki a változó értékeit.

#!/bin/bash
míg felszáll ':bennem:'mérges;tedd
ügy $ arg ban ben
én) Azonosító=$ OPTARG;;
n) Név=$ OPTARG;;
m) Gyártás időpontja=$ OPTARG;;
És) Lejárati dátum=$ OPTARG;;
esac
Kész
kidobta -És ' n$ ID $ Name $ Manufacturing_date $ Expire_date n'

Futtassa a fájlt az alábbi beállításokkal és argumentumértékekkel. Itt a p100 az -i opció értéke, a 'Hot Cake' a -n opció értéke, a '01 -01-2018 'a -m opció értéke és a '06 -01-2018' a -értéke e opció.

$bashcmdline3.sh-énp001-n 'Forró torta' -m „2018-01-01” -És '06 -01-2018 '

Ha egyszerű értékeket kell küldeni egy szkriptben, akkor jobb argumentumváltozókat használni. De ha formázott módon szeretne adatokat küldeni, akkor jobb, ha a getopts függvényt használja az argumentumértékek lekéréséhez. További információkért nézze meg a videó !