Linuxis kasutame bash-skripti sisendina käsurea argumente. Bash saab neid käsurea argumente järjestikku võtta ja valikuna sõeluda. Need argumendid võimaldavad teil toiminguid ja skripti väljundit dünaamiliselt mõjutada.
Neid argumente saate sisendi ja väljundi mõjutamiseks erinevalt konfigureerida. Sellepärast on käsurea arg-ide käsitlemine bashis hädavajalik, kuid paljud uued kasutajad peavad õppima, kuidas seda teha. Nii et selles juhendis selgitame erinevaid viise käsurea argumentide käsitlemiseks bashis.
Kuidas Bashis käsurea argumente käsitleda?
Bashis on käsurea arg-ide käsitlemiseks erinevaid viise, nii et vaatame neid lühiteabe saamiseks:
Getopti funktsioon
Funktsioon getopt on mugav, kuna see pakub bashis argumentide määratlemiseks ja sõelumiseks valikuid ja süntaksit. See on Linuxi sisseehitatud funktsioon, mida saate argumentide alusel kasutada andmebaasifaili või aruande loomisel kindlas vormingus. Funktsioon getopt aitab sõeluda lühikesi käsureaargumente, kuna argumente on kahte tüüpi:
- Lühikesed argumendid: Need on ühekohalised argumendid, millele järgneb sidekriips. Näiteks -a, -l, -h jne on mõned üksikute argumentide näited.
- Pikad argumendid: Need on mitme märgiga argumendid, millele järgneb topeltsidekriips. Pikkade argumentide kohta on erinevaid näiteid, nagu –all, –list, –help jne.
Võtame näite, kus käsitleme käsurea argumente utiliidi getopt abil. Oleme loonud bash-skripti nimega 'getopt.sh', mis sisaldab järgmist teavet:
!/ prügikast / bash
samal ajal getopts 'A:B:C:D:' üksikasjad; teha
juhtum ' $detailid ' sisse
A )
kaja 'Kodanikunimi on $OPTARG ' ;;
B )
kaja 'Kodaniku ID on $OPTARG ' ;;
C )
kaja 'Sünnikoht on $OPTARG ' ;;
D )
kaja 'Amet on $OPTARG ' ;;
* )
väljuda 1 ;;
esac
tehtud
nihe ' $(($OPTING -1) )'
kui [ ! - Koos 1 dollar ] ; siis
kaja 'Perekonnaseis $1'
muidu
kaja 'Sissekanded puuduvad'
väljuda 1
olla
kui [ ! - Koos 2 dollarit ] ; siis
kaja 'Pereliikmed 2 dollarit'
olla
Nüüd käivitame skripti nõutavate argumentidega sisendis:
Nagu näete ülaltoodud pildil, käivitame skripti ainult funktsioonidega getopt ja seejärel lisame täieliku tulemuse saamiseks tavalised argumendid.
Lippude kasutamine
Lipud pole muud kui üksikud märgid, millele eelnevad sidekriipsud (-). Kui edastame argumendid funktsiooni getopt abil, kasutame lippe. -a, -b, -c on mõned näited lippudest. Näiteks skript nõuab kodaniku nime, ID-d, kohta, vanust ja ametit. Seetõttu kasutasime lippe j, k, l, m, n, et määratleda üheaegselt kodaniku nimi, ID, koht, vanus ja amet:
#!/bin/bashKuigi getopts j:k:l:m:n: lipu_info
teha
juhtum ' ${flag_info} ' sisse
< ol >
< et > j ) kodanikunimi = ${OPTARG} ;; et >
< et > k ) kodanik = ${OPTARG} ;; et >
< et > l ) koht = ${OPTARG} ;; et >
< et > m ) vanus = ${OPTARG} ;; et >
< et > n ) okupatsioon = ${OPTARG} ;; et >
ol >
esac
tehtud
kaja 'Siin on sisestatud üksikasjad:'
kaja 'Kodanikunimi: $kodanikunimi ' ;
kaja 'Kodaniku ID: $kodanikud ' ;
kaja 'Koht: $koht ' ;
kaja 'Vanus: $vanus ' ;
kaja 'Elukutse: $okupatsioon ' ;
Skript annab terminalis järgmise tulemuse:
. /< stsenaarium > .sh -j Danny -k 476 -l Toronto -m 25 -n Autor
Kasutades [meil kaitstud] Silmustega
' [meil kaitstud] ” muutuja pole midagi muud kui kõigi sisendargumentide massiiv. Saame edastada suvalise arvu sisendeid kasutades ' [meil kaitstud] ” muutuja. Seda muutujat saate argumentide kordamiseks kasutada tsüklina. ' [meil kaitstud] ” muutuja tuleb siis kasuks; te ei tea sisendi suurust ega saa võtta positsiooniargumente. Seetõttu võite kasutada ' [meil kaitstud] ” selle asemel, et ikka ja jälle defineerida funktsiooni getopt. Siin on näide silmuste ja kasutamisest [meil kaitstud] koos skriptis:
#!/bin/bashühel = ( '$ @ ” )
kui [ $# -gt 1 ]
siis
lisama =$ ( ( ${num[0]} + ${num[1]} ) )
kaja 'Kõigi numbrite liitmine on järgmine: $lisa '
lahutamine =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )
kaja 'Arvude lahutamine on: $lahutamine '
korrutada =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )
kaja 'Numbrite korrutis on: $korrutada '
jaotus1 =$ ( ( ${num[0]} / ${num[1]} ) )
kaja 'Jaotus ${num[0]} ja ${num[1]} on: $jaotus1 '
jaotus2 =$ ( ( ${num[1]} / ${num[2]} ) )
kaja 'Jaotus ${num[1]} ja ${num[2]} on: $jaotus2 '
jaotus3 =$ ( ( ${num[0]} / ${num[2]} ) )
kaja 'Jaotus ${num[0]} ja ${num[2]} on: $jaotus2 '
olla
Ülaltoodud skript teostab käsurea argumentide põhjal erinevaid aritmeetilisi arvutusi. Näiteks oleme sisestanud sisendiks 50, 35 ja 15:
Positsiooniparameetrite kasutamine
Saate juurdepääsu positsiooniparameetritele, kuna need avavad kõigepealt $1, seejärel $2 ja nii edasi. Näiteks loome skripti, mis loeb esimese argumendina nime ja seejärel teise argumendina linna. Kui aga möödud enne linnast ja siis nimest, siis loeb see nime linnaks ja vastupidi. Selle kontseptsiooni mõistmiseks sukeldume põhjalikumalt järgmisesse skripti:
#!/bin/bashkaja 'Siin on sisestatud üksikasjad'
kaja 'nimi $1'
kaja 'linn $2'
Peate terminalis skripti täitmise ajal lisama nime ja linna:
Pakkimine
See on kõik, mida peate teadma bashi käsurea argumentide käsitlemise meetodite kohta. Oleme selgitanud erinevaid lähenemisviise, mida saate sobivate näidetega proovida. Kui soovite skripti argumente lisada, on erinevaid käske. Nii et külastage kindlasti Linuxhinti, et nende kohta rohkem teada saada.