Kaip tvarkyti komandų eilutės argumentus „Bash“?

Kaip Tvarkyti Komandu Eilutes Argumentus Bash



Linux sistemoje kaip bash scenarijaus įvestį naudojame komandinės eilutės argumentus. Bash gali priimti šiuos komandinės eilutės argumentus nuosekliai ir analizuoti juos kaip parinktį. Šie argumentai leidžia dinamiškai paveikti veiksmus ir scenarijaus išvestį.

Šiuos argumentus galite konfigūruoti skirtingai, kad paveiktumėte įvestį ir išvestį. Štai kodėl labai svarbu tvarkyti komandų eilutės parametrus „bash“, tačiau daugelis naujų vartotojų turi išmokti tai padaryti. Taigi šiame vadove paaiškinsime įvairius būdus, kaip tvarkyti komandų eilutės argumentus naudojant bash.







Kaip tvarkyti komandų eilutės argumentus „Bash“?

Yra įvairių būdų, kaip tvarkyti komandų eilutės parametrus „Bash“, todėl pažvelkime į juos, kad gautumėte trumpą informaciją:



„Getopt“ funkcija



Funkcija getopt yra patogi, nes ji suteikia parinktis ir sintaksę argumentams apibrėžti ir analizuoti bash. Tai yra integruota „Linux“ funkcija, kurią galite naudoti kurdami duomenų bazės failą arba ataskaitą konkrečiu formatu pagal argumentus. Funkcija getopt padeda išanalizuoti trumpus komandinės eilutės argumentus, nes yra dviejų tipų argumentai:





  • Trumpi argumentai: Tai yra vieno simbolio argumentai, po kurių yra brūkšnelis. Pavyzdžiui, -a, -l, -h ir tt yra keli pavienių argumentų pavyzdžiai.

  • Ilgi argumentai: Tai yra kelių simbolių argumentai, po kurių rašomas dvigubas brūkšnelis. Yra įvairių ilgų argumentų pavyzdžių, tokių kaip –visi, –sąrašas, –help ir kt.

Paimkime pavyzdį, kai tvarkysime komandinės eilutės argumentus naudodami getopt įrankį. Sukūrėme bash scenarijų pavadinimu „getopt.sh“, kuriame yra ši informacija:



!/ šiukšliadėžė / bash

kol getopts 'A:B:C:D:' detalės; daryti

atveju $detalės in

A )

aidas „Piliečio vardas yra $OPTARG ;;

B )

aidas „Piliečio ID yra $OPTARG ;;

C )

aidas „Gimimo vieta yra $OPTARG ;;

D )

aidas „Užsiėmimas yra $OPTARG ;;

* )

išeiti 1 ;;

esac

padaryta

pamaina $(($OPTING -1) )'



jeigu [ ! -Su 1 USD ] ; tada

aidas „Šeiminė padėtis 1 USD“

Kitas

aidas „Įrašų nėra“

išeiti 1

būti



jeigu [ ! -Su 2 USD ] ; tada

aidas „Šeimos nariai 2 USD“

būti

Dabar vykdykime scenarijų su reikiamais įvesties argumentais:

Kaip matote aukščiau esančiame paveikslėlyje, paleidžiame scenarijų tik su getopt funkcijomis ir pridedame įprastus argumentus, kad gautume visą rezultatą.

Naudojant vėliavėles

Vėliavos yra ne kas kita, kaip pavieniai simboliai, prieš kuriuos rašomi brūkšneliai (-). Kai perduodame argumentus naudodami funkciją getopt, naudojame vėliavėles. -a, -b, -c yra keli vėliavų pavyzdžiai. Pavyzdžiui, scenarijui reikalingas piliečio vardas, pavardė, ID, vieta, amžius ir profesija. Taigi mes naudojome vėliavėles j, k, l, m, n, kad vienu metu apibrėžtume piliečio vardą, pavardę, asmens tapatybę, vietą, amžių ir profesiją:

#!/bin/bash

Nors getopts j:k:l:m:n: flag_info

daryti

atveju ${flag_info} in
< ol >
< kad > j ) pilietis vardas = ${OPTARG} ;; kad >
< kad > k ) pilietis = ${OPTARG} ;; kad >
< kad > l ) vieta = ${OPTARG} ;; kad >
< kad > m ) amžiaus = ${OPTARG} ;; kad >
< kad > n ) užsiėmimas = ${OPTARG} ;; kad >
ol >
esac

padaryta

aidas 'Štai įvesta informacija:'

aidas „Piliečio vardas: $piliečio vardas ;

aidas „Piliečio ID: $pilietis ;

aidas 'Vieta: $ vieta ;

aidas 'Amžius: $amžius ;

aidas 'Profesija: $profesija ;

Scenarijus terminale pateiks tokį rezultatą:

. /< scenarijus > .sh -j Danny -k 476 -l Torontas -m 25 -n Autorius

Naudojant [apsaugotas el. paštas] Su kilpomis

„ [apsaugotas el. paštas] “ kintamasis yra ne kas kita, kaip visų įvesties argumentų masyvas. Galime perduoti bet kokį įvesties skaičių naudodami „ [apsaugotas el. paštas] “ kintamasis. Galite naudoti šį kintamąjį kaip kilpą, kad galėtumėte kartoti argumentus. „ [apsaugotas el. paštas] ” kintamasis tada praverčia; jūs nežinote įvesties dydžio ir negalite priimti pozicijos argumentų. Taigi galite naudoti „ [apsaugotas el. paštas] “  o ne vėl ir vėl apibrėžti getopt funkciją. Čia yra kilpų ir naudojimo pavyzdys [apsaugotas el. paštas] kartu pagal scenarijų:

#!/bin/bash

ant vieno = ( „$ @ )



jeigu [ $# -gt 1 ]

tada



papildyti =$ ( ( ${num[0]} + ${num[1]} ) )

aidas 'Visų skaičių pridėjimas yra toks: $pridėti



atimti =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

aidas 'Skaičių atėmimas yra: $atimtis



padauginti =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

aidas 'Skaičių dauginimas yra: $ padauginti



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

aidas „Padalinys ${num[0]} ir ${num[1]} yra: $ divizija1



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

aidas 'Padalijimas ${num[1]} ir ${num[2]} yra: $ divizija2



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

aidas 'Padalijimas ${num[0]} ir ${num[2]} yra: $ divizija2



būti

Aukščiau pateiktas scenarijus atlieka skirtingus aritmetinius skaičiavimus pagal komandinės eilutės argumentus. Pavyzdžiui, kaip įvestį įvedėme 50, 35 ir 15:

Padėties parametrų naudojimas

Galite pasiekti padėties parametrus, nes jie pirmiausia pasiekia $1, tada $2 ir pan. Pavyzdžiui, sukurkime scenarijų, kuris nuskaito pavadinimą kaip pirmąjį argumentą, o paskui miestą kaip antrąjį. Tačiau, jei pirmiausia pravažiuojate miestą, o tada pavadinimą, tada jis laiko pavadinimą miestu ir atvirkščiai. Norėdami suprasti šią sąvoką, gilinkime į šį scenarijų:

#!/bin/bash

aidas 'Štai įvesta informacija'

aidas 'vardas $1'

aidas „miestas 2 USD“

Vykdydami scenarijų terminale turite pridėti pavadinimą ir miestą:

Apvyniojimas

Tai viskas, ką reikia žinoti apie metodus, kaip tvarkyti komandinės eilutės argumentus programoje bash. Atitinkamais pavyzdžiais paaiškinome įvairius būdus, kuriuos galite išbandyti. Jei į scenarijų norite įtraukti argumentų, yra įvairių komandų. Todėl būtinai apsilankykite „Linuxhint“, kad sužinotumėte daugiau apie juos.