Jak zacházet s argumenty příkazového řádku v Bash?

Jak Zachazet S Argumenty Prikazoveho Radku V Bash



V Linuxu používáme argumenty příkazového řádku jako vstup pro bash skript. Bash může vzít tyto argumenty příkazového řádku postupně a analyzovat je jako možnost. Tyto argumenty vám umožňují dynamicky ovlivňovat akce a výstup skriptu.

Tyto argumenty můžete nakonfigurovat odlišně, abyste ovlivnili vstup a výstup. To je důvod, proč je manipulace s argumenty příkazového řádku v bash zásadní, ale mnoho nových uživatelů se musí naučit, jak to udělat. V této příručce tedy vysvětlíme různé způsoby zpracování argumentů příkazového řádku v bash.







Jak zacházet s argumenty příkazového řádku v Bash?

Existují různé způsoby, jak zacházet s argumenty příkazového řádku v Bash, takže se na ně podívejme, abychom získali stručné informace:



Funkce getopt



Funkce getopt je užitečná, protože poskytuje možnosti a syntaxi pro definování a analýzu argumentů v bash. Je to vestavěná funkce Linuxu, kterou můžete použít při vytváření databázového souboru nebo sestavy ve specifickém formátu na základě argumentů. Funkce getopt pomáhá analyzovat krátké argumenty příkazového řádku, protože existují dva typy argumentů:





  • Krátké argumenty: Toto jsou jednoznakové argumenty následované pomlčkou. Například -a, -l, -h atd. je několik příkladů jednotlivých argumentů.

  • Dlouhé argumenty: Toto jsou víceznakové argumenty následované dvojitou pomlčkou. Existují různé příklady dlouhých argumentů, například –all, –list, –help atd.

Vezměme si příklad, kde budeme zpracovávat argumenty příkazového řádku pomocí nástroje getopt. Vytvořili jsme bash skript s názvem „getopt.sh“, který obsahuje následující informace:



!/ zásobník / bash

zatímco getopts 'ABECEDA:' detaily; dělat

případ ' $detaily ' v

A )

echo „Občanské jméno je $ OPTARG ' ;;

B )

echo „Občanský průkaz je $ OPTARG ' ;;

C )

echo „Místo narození je $ OPTARG ' ;;

D )

echo „Povolání je $ OPTARG ' ;;

* )

výstup 1 ;;

esac

Hotovo

posun ' $(($OPTING -1) )'



-li [ ! -S 1 $ ] ; pak

echo 'Rodinný stav $1'

jiný

echo 'Žádné položky'

výstup 1

být



-li [ ! -S 2 $ ] ; pak

echo 'Rodinní členové 2 $'

být

Nyní spusťte skript s požadovanými argumenty na vstupu:

Jak můžete vidět na obrázku výše, spustíme skript pouze s funkcemi getopt a poté přidáme normální argumenty, abychom získali úplný výsledek.

Použití příznaků

Příznaky nejsou nic jiného než jednotlivé znaky, před kterými jsou pomlčky (-). Když předáváme argumenty pomocí funkce getopt, používáme příznaky. -a, -b, -c jsou některé příklady příznaků. Skript například vyžaduje jméno, ID, místo, věk a povolání občana. Proto jsme použili příznaky j, k, l, m, n, abychom současně definovali jméno občana, ID, místo, věk a povolání:

#!/bin/bash

Zatímco getopts j:k:l:m:n: informace o vlajce

dělat

případ ' ${flag_info} ' v
< ol >
< že > j ) občanské jméno = ${OPTARG} ;; že >
< že > k ) ID občana = ${OPTARG} ;; že >
< že > l ) místo = ${OPTARG} ;; že >
< že > m ) stáří = ${OPTARG} ;; že >
< že > n ) obsazení = ${OPTARG} ;; že >
ol >
esac

Hotovo

echo 'Zde jsou zadané údaje:'

echo 'Jméno občana: $citizenname ' ;

echo 'ID občana: $občan ' ;

echo 'Místo: $místo ' ;

echo 'Stáří: $věk ' ;

echo 'Obsazení: $okupace ' ;

Skript poskytne v terminálu následující výsledek:

. /< skript > .sh -j Danny -k 476 -l Toronto -m 25 -n Autor

Použitím [e-mail chráněný] Se smyčkami

' [e-mail chráněný] Proměnná ” není nic jiného než pole všech vstupních argumentů. Můžeme předat libovolný počet vstupů pomocí „ [e-mail chráněný] “proměnná. Tuto proměnnou můžete použít jako smyčku k iteraci argumentů. ' [e-mail chráněný] ” proměnná pak přijde vhod; neznáte vstupní velikost a nemůžete vzít poziční argumenty. Můžete tedy použít „ [e-mail chráněný] ”  spíše než znovu a znovu definovat funkci getopt. Zde je příklad použití smyček a [e-mail chráněný] společně ve scénáři:

#!/bin/bash

na jednom = ( „$ @ )



-li [ # $ -gt 1 ]

pak



přidat = $ ( ( ${num[0]} + ${num[1]} ) )

echo 'Sčítání všech čísel je: $add '



odčítání = $ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

echo 'Odčítání čísel je: $odčítání '



násobit = $ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

echo 'Násobení čísel je: $násobit '



divize1 = $ ( ( ${num[0]} / ${num[1]} ) )

echo 'Divize ${num[0]} a ${num[1]} je: $divize1 '



divize2 = $ ( ( ${num[1]} / ${num[2]} ) )

echo 'Rozdělení ${num[1]} a ${num[2]} je: $divize2 '



divize3 = $ ( ( ${num[0]} / ${num[2]} ) )

echo 'Rozdělení ${num[0]} a ${num[2]} je: $divize2 '



být

Výše uvedený skript provádí různé aritmetické výpočty na základě argumentů příkazového řádku. Například jsme jako vstup zadali 50, 35 a 15:

Použití pozičních parametrů

K pozičním parametrům můžete přistupovat tak, že nejprve přistupují k $1, poté k $2 atd. Vytvořme například skript, který přečte jméno jako první argument a poté město jako druhý. Pokud však projdete nejprve městem a poté jménem, ​​pak to považuje název za město a naopak. Pojďme se hlouběji ponořit do následujícího skriptu, abychom tomuto konceptu porozuměli:

#!/bin/bash

echo 'Zde jsou zadané údaje'

echo 'jméno $1'

echo 'město $2'

Při provádění skriptu v terminálu musíte přidat název a město:

Zabalit se

To je vše, co potřebujete vědět o metodách zpracování argumentů příkazového řádku v bash. Vysvětlili jsme různé přístupy, které můžete vyzkoušet na vhodných příkladech. Pokud chcete do skriptu přidat argumenty, existují různé příkazy. Nezapomeňte tedy navštívit Linuxhint a dozvědět se o nich více.