Како руковати аргументима командне линије у Басху?

Kako Rukovati Argumentima Komandne Linije U Bashu



У Линуку користимо аргументе командне линије као улаз за басх скрипту. Басх може узимати ове аргументе командне линије узастопно и анализирати их као опцију. Ови аргументи вам омогућавају да динамички утичете на радње и излаз скрипте.

Можете другачије да конфигуришете ове аргументе да бисте утицали на улаз и излаз. Зато је руковање аргументима командне линије у басх-у од суштинског значаја, али многи нови корисници морају да науче како то да ураде. Дакле, у овом водичу ћемо објаснити различите начине руковања аргументима командне линије у басх-у.







Како руковати аргументима командне линије у Басху?

Постоје различити начини за руковање аргументима командне линије у Басху, па хајде да их погледамо да бисмо добили кратке информације:



Функција гетопт



Функција гетопт је згодна јер пружа опције и синтаксу за дефинисање и рашчлањивање аргумената у басх-у. То је уграђена функција Линук-а коју можете користити док креирате датотеку базе података или извештај у одређеном формату на основу аргумената. Функција гетопт помаже у рашчлањивању кратких аргумената командне линије јер постоје две врсте аргумената:





  • Кратки аргументи: Ово су аргументи од једног знака иза којих следи цртица. На пример, -а, -л, -х, итд., су неколико примера појединачних аргумената.

  • Дуги аргументи: Ово су аргументи са више знакова праћени двоструком цртицом. Постоје различити примери дугих аргумената, као што су –све, –листа, –помоћ, итд.

Узмимо пример где ћемо руковати аргументима командне линије користећи услужни програм гетопт. Направили смо басх скрипту под називом „гетопт.сх“ која садржи следеће информације:



!/ бин / басх

док гетоптс 'А Б Ц Д:' детаљи; урадити

случај ' $детаилс ' ин

А )

одјек „Име грађанина је $ОПТАРГ ' ;;

Б )

одјек „Лична карта грађана је $ОПТАРГ ' ;;

Ц )

одјек „Место рођења је $ОПТАРГ ' ;;

Д )

одјек „Занимање је $ОПТАРГ ' ;;

* )

излаз 1 ;;

есац

Готово

смена ' $(($ОПТИНГ -1) )'



ако [ ! -Са $1 ] ; онда

одјек „Брачно стање $1“

друго

одјек 'Без уноса'

излаз 1

бити



ако [ ! -Са $2 ] ; онда

одјек „Чланови породице 2 долара“

бити

Хајде сада да извршимо скрипту са потребним аргументима у улазу:

Као што можете видети на горњој слици, покрећемо скрипту само са гетопт функцијама, а затим додајемо нормалне аргументе да бисмо добили комплетан резултат.

Коришћење застава

Заставице нису ништа друго до појединачни знакови којима претходе цртице (-). Када проследимо аргументе помоћу функције гетопт, користимо заставице. -а, -б, -ц су неки примери застава. На пример,  скрипта захтева име грађанина, ИД, место, године и занимање. Дакле, користили смо заставе ј, к, л, м, н, да бисмо истовремено дефинисали име грађанина, ИД, место, старост и занимање:

#!/бин/басх

Док гетоптс ј:к:л:м:н: флаг_инфо

урадити

случај ' ${флаг_инфо} ' ин
< ол >
< то > ј ) име грађанина = ${ОПТАРГ} ;; то >
< то > к ) цитизенид = ${ОПТАРГ} ;; то >
< то > л ) место = ${ОПТАРГ} ;; то >
< то > м ) старости = ${ОПТАРГ} ;; то >
< то > н ) занимање = ${ОПТАРГ} ;; то >
ол >
есац

Готово

одјек „Ево унетих детаља:“

одјек „Име грађанина: $цитизеннаме ' ;

одјек „Идентификација грађанина: $цитизенид ' ;

одјек „Место: $плаце ' ;

одјек „Старост: $аге ' ;

одјек „Занимање: $оццупатион ' ;

Скрипта ће дати следећи резултат у терминалу:

. /< скрипта > .сх Данни 476 Торонто 25 Аутор

Користећи [е-маил заштићен] Витх Лоопс

„ [е-маил заштићен] ” променљива није ништа друго до низ свих улазних аргумената. Можемо да унесемо било који број уноса користећи „ [е-маил заштићен] ' променљива. Ову променљиву можете користити као петљу за итерацију кроз аргументе. „ [е-маил заштићен] ” тада променљива добро дође; не знате величину уноса и не можете узети позиционе аргументе. Дакле, можете користити „ [е-маил заштићен] ”  уместо да увек изнова дефинишете функцију гетопт. Ево примера коришћења петљи и [е-маил заштићен] заједно у скрипту:

#!/бин/басх

на једном = ( “$ @ )



ако [ $# -гт 1 ]

онда



додати =$ ( ( ${нум[0]} + ${нум[1]} ) )

одјек „Сабирање свих бројева је: $адд '



одузимање =$ ( ( ${нум[0]} - ${нум[1]} - ${нум[2]} ) )

одјек „Одузимање бројева је: $одузимање '



умножити =$ ( ( ${нум[0]} * ${нум[1]} * ${нум[2]} ) )

одјек „Множење бројева је: $мултипли '



дивизија1 =$ ( ( ${нум[0]} / ${нум[1]} ) )

одјек „Подела на ${нум[0]} и ${нум[1]} је: $дивисион1 '



дивизија2 =$ ( ( ${нум[1]} / ${нум[2]} ) )

одјек 'Подела ${нум[1]} и ${нум[2]} је: $дивисион2 '



дивизија3 =$ ( ( ${нум[0]} / ${нум[2]} ) )

одјек 'Подела ${нум[0]} и ${нум[2]} је: $дивисион2 '



бити

Горња скрипта изводи различите аритметичке прорачуне на основу аргумената командне линије. На пример, унели смо 50, 35 и 15 као улаз:

Коришћење позиционих параметара

Можете приступити позиционим параметрима како прво приступају $1, затим $2 итд. На пример, направимо скрипту која чита име као први аргумент, а затим град као други. Међутим, ако прво прођете град, а затим име, онда он сматра име као град и обрнуто. Хајде да дубље заронимо у следећу скрипту да бисмо разумели овај концепт:

#!/бин/басх

одјек „Ево унетих детаља“

одјек 'име $1'

одјек 'град $2'

Морате да додате име и град у време извршавања скрипте у терминалу:

Окончање

Ово је све што треба да знате о методама за руковање аргументима командне линије у басх-у. Објаснили смо различите приступе које можете испробати уз одговарајуће примере. Постоје различите команде ако желите да додате аргументе у скрипту. Зато обавезно посетите Линукхинт да бисте сазнали више о њима.