Linuxissa käytämme komentoriviargumentteja bash-skriptin syötteenä. Bash voi ottaa nämä komentorivin argumentit peräkkäin ja jäsentää ne vaihtoehtona. Näiden argumenttien avulla voit vaikuttaa toimintoihin ja komentosarjan ulostuloon dynaamisesti.
Voit määrittää nämä argumentit eri tavalla vaikuttamaan tuloon ja lähtöön. Siksi komentorivin argien käsittely bashissa on välttämätöntä, mutta monien uusien käyttäjien on opittava tekemään se. Joten tässä oppaassa selitämme erilaisia tapoja käsitellä komentoriviargumentteja bashissa.
Kuinka käsitellä komentoriviargumentteja Bashissa?
Bashissa on useita tapoja käsitellä komentorivin argeja, joten katsotaanpa niitä saadaksesi lyhyttä tietoa:
Getopt-toiminto
Getopt-funktio on kätevä, koska se tarjoaa vaihtoehdot ja syntaksin argumenttien määrittämiseen ja jäsentämiseen bashissa. Se on Linuxin sisäänrakennettu toiminto, jota voit käyttää luodessasi tietokantatiedostoa tai raporttia tietyssä muodossa argumenttien perusteella. Getopt-funktio auttaa jäsentämään lyhyitä komentoriviargumentteja, koska argumentteja on kahdenlaisia:
- Lyhyet argumentit: Nämä ovat yksimerkkisiä argumentteja, joita seuraa yhdysmerkki. Esimerkiksi -a, -l, -h jne. ovat muutamia esimerkkejä yksittäisistä argumenteista.
- Pitkät argumentit: Nämä ovat monimerkkisiä argumentteja, joita seuraa kaksoisviiva. On olemassa useita esimerkkejä pitkistä argumenteista, kuten –all, –list, –help jne.
Otetaan esimerkki, jossa käsittelemme komentorivin argumentteja getopt-apuohjelmalla. Olemme luoneet bash-skriptin nimeltä 'getopt.sh', joka sisältää seuraavat tiedot:
!/ roskakori / lyödä
sillä aikaa getopts 'A:B:C:D:' yksityiskohdat; tehdä
tapaus ' $tiedot ' sisään
A )
kaiku 'Kansalainen nimi on $OPTARG ' ;;
B )
kaiku 'Kansalaistunnus on $OPTARG ' ;;
C )
kaiku 'Syntymäpaikka on $OPTARG ' ;;
D )
kaiku 'Ammatti on $OPTARG ' ;;
* )
poistu 1 ;;
esac
tehty
siirtää ' $(($OPTING -1) )'
jos [ ! -Kanssa $1 ] ; sitten
kaiku 'Siviilisääty $1'
muu
kaiku 'Ei merkintöjä'
poistu 1
olla
jos [ ! -Kanssa 2 dollaria ] ; sitten
kaiku 'Perheenjäsenet 2 dollaria'
olla
Suoritetaan nyt komentosarja syötteessä olevilla vaadituilla argumenteilla:
Kuten yllä olevasta kuvasta näet, suoritamme skriptin vain getopt-funktioilla ja lisäämme sitten normaalit argumentit saadaksemme täydellisen tuloksen.
Lippujen käyttö
Liput ovat vain yksittäisiä merkkejä, joita edeltää tavuviiva (-). Kun välitämme argumentit getopt-funktiolla, käytämme lippuja. -a, -b, -c ovat esimerkkejä lipuista. Esimerkiksi käsikirjoitus vaatii kansalaisen nimen, henkilötunnuksen, paikan, iän ja ammatin. Tästä syystä käytimme lippuja j, k, l, m, n määrittelemään kansalaisen nimen, henkilötunnuksen, paikan, iän ja ammatin samanaikaisesti:
#!/bin/bashSillä aikaa getopts j:k:l:m:n: lippu_info
tehdä
tapaus ' ${flag_info} ' sisään
< ol >
< että > j ) kansalaisnimi = ${OPTARG} ;; että >
< että > k ) kansalainen = ${OPTARG} ;; että >
< että > l ) paikka = ${OPTARG} ;; että >
< että > m ) ikä = ${OPTARG} ;; että >
< että > n ) ammatti = ${OPTARG} ;; että >
ol >
esac
tehty
kaiku 'Tässä ovat syötetyt tiedot:'
kaiku 'Kansalaisen nimi: $kansalaisnimi ' ;
kaiku 'Kansalainen tunnus: $kansalainen ' ;
kaiku 'Paikka: $paikka ' ;
kaiku 'Ikä: $ikä ' ;
kaiku 'Ammatti: $ammatti ' ;
Skripti antaa seuraavan tuloksen terminaalissa:
. /< käsikirjoitus > .sh -j Danny -k 476 -l Toronto -m 25 -n Tekijä
Käyttämällä [sähköposti suojattu] Silmukoiden kanssa
' [sähköposti suojattu] ”-muuttuja ei ole muuta kuin kaikkien syöteargumenttien joukko. Voimme välittää minkä tahansa määrän syötteitä käyttämällä ' [sähköposti suojattu] ”muuttuja. Voit käyttää tätä muuttujaa silmukana argumenttien toistamiseen. ' [sähköposti suojattu] ”muuttuja on silloin hyödyllinen; et tiedä syötteen kokoa etkä pysty hyväksymään sijaintiargumentteja. Siksi voit käyttää ' [sähköposti suojattu] ” sen sijaan, että määrittelisit getopt-funktion uudestaan ja uudestaan. Tässä on esimerkki silmukoiden ja käyttämisestä [sähköposti suojattu] yhdessä käsikirjoituksessa:
#!/bin/bashyhdellä = ( '$ @ ” )
jos [ $# -gt 1 ]
sitten
lisätä =$ ( ( ${num[0]} + ${num[1]} ) )
kaiku 'Kaikkien numeroiden yhteenlasku on: $lisää '
vähennyslasku =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )
kaiku 'Lukujen vähentäminen on: $vähennys '
moninkertaistaa =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )
kaiku 'Lukujen kertolasku on: $kerroin '
osasto 1 =$ ( ( ${num[0]} / ${num[1]} ) )
kaiku 'Jako ${num[0]} ja ${num[1]} On: $jako1 '
osasto 2 =$ ( ( ${num[1]} / ${num[2]} ) )
kaiku 'Jako ${num[1]} ja ${num[2]} On: $jako2 '
osasto 3 =$ ( ( ${num[0]} / ${num[2]} ) )
kaiku 'Jako ${num[0]} ja ${num[2]} On: $jako2 '
olla
Yllä oleva komentosarja suorittaa erilaisia aritmeettisia laskutoimituksia komentoriviargumenttien perusteella. Olemme esimerkiksi syöttäneet syötteeksi 50, 35 ja 15:
Paikkaparametrien käyttö
Voit käyttää sijaintiparametreja, kun ne käyttävät ensin $1, sitten $2 ja niin edelleen. Luodaan esimerkiksi komentosarja, joka lukee nimen ensimmäisenä argumenttina ja sitten kaupungin toiseksi. Jos kuitenkin ohitat ensin kaupungin ja sitten nimen, se pitää nimeä kaupunkina ja päinvastoin. Sukeltakaamme syvemmälle seuraavaan käsikirjoitukseen tämän käsitteen ymmärtämiseksi:
#!/bin/bashkaiku 'Tässä ovat syötetyt tiedot'
kaiku 'nimi $1'
kaiku 'kaupunki $2'
Sinun on lisättävä nimi ja kaupunki, kun suoritat komentosarjan päätteessä:
Käärimistä
Tämä on kaikki mitä sinun tarvitsee tietää menetelmistä käsitellä komentoriviargumentteja bashissa. Olemme selittäneet erilaisia lähestymistapoja, joita voit kokeilla sopivilla esimerkeillä. On olemassa useita komentoja, jos haluat lisätä argumentteja skriptiin. Muista siis käydä Linuxhintissä saadaksesi lisätietoja niistä.