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

How Handle Command Line Arguments Bash Script



У многим случајевима басх скрипте захтевају вредности аргумената да би омогућиле улазне опције скрипти. Аргументима командне линије можете управљати у басх скрипти на два начина. Један је коришћењем променљиве аргумента а други је коришћењем гетоптс функција. Како можете да рукујете аргументима командне линије приказано је у овом водичу.

Користећи променљиве аргумента:

Аргумент променљива почиње од 0 УСД. Име датотеке главног скрипта је ускладиштено у $ 0 које прима вредности аргумената из аргумената командне линије. Ако се у командној линији проследе два аргумента, вредности аргумената ће се примати у променљивима $ 1 и $ 2 секвенцијално.







Пример -1: Слање три нумеричке вредности као аргумената

Направите басх датотеку и додајте следећи код. Скрипта ће примити три вредности аргумента и сместити је у $ 1, $ 2 и $ 3. Бројат ће укупан број аргумената, исписивати вриједности аргумената са петљом и без петље. На крају, одштампајте збир свих вредности аргумената.



#!/бин/басх

# Бројање укупног броја аргумената
Избацио „Укупан број аргумената: $#“

# Појединачно читање вредности аргумената
Избацио 'Вредност првог аргумента: $ 1'
Избацио „Вредност другог аргумента: 2 УСД“
Избацио „Вредност трећег аргумента: 3 УСД“

# Читање вредности аргумената помоћу петље
зааргвалу '[заштићена е -пошта]'
урадити
Избацио '$ аргвал'
Готово

# Додавање вредности аргумената
збир= $((1 УСД+2 УСД+3 УСД))

# одштампајте резултат
Избацио ' нРезултат збира =$ сум'

Покрените басх датотеку са три нумеричке вредности аргумента.



$басхцмдлине1.схпедесет 35 петнаест





Пример -2: Узимање имена датотеке као аргумента

Направите басх датотеку и додајте следећи код да бисте пребројали укупан број знакова било које датотеке. Овде ће се име датотеке проследити као аргумент командне линије.

#!/бин/басх
назив документа=1 УСД
тоталцхар=``Тоалет $ назив датотеке``
Избацио 'Укупан број знакова је$ тоталцхар'

Покрените басх скрипту са именом датотеке као вредност једног аргумента и покрените другу наредбу да проверите укупан број знакова те датотеке. Овде се датотека запосленика.ткт користи као вредност аргумента. Укупан број знакова датотеке запослених.ткт је 204.



$басхцмдлине2.сх запослени.ткт
$Тоалет запослени.ткт

Коришћење функције гетоптс:

Ако желите да сачувате податке у бази података или било којој датотеци или направите извештај о одређеном формату на основу вредности аргумената командне линије, онда гетоптс функција је најбоља опција за обављање задатка. То је уграђена линук функција. Дакле, можете лако користити ову функцију у скрипти за читање форматираних података из командне линије.

Пример -1: Читање аргумената помоћу функције гетоптс

Направите басх датотеку и додајте следећу скрипту да бисте разумели употребу гетоптс функција. „Гетоптс“ функција се користи са вхиле петљом за читање опција аргумената командне линије и вредности аргумената. Овде се користе 4 опције које су „И“, „н“, „м“ и 'И' . Наредба цасе се користи за подударање са одређеном опцијом и чување вредности аргумента у променљивој. На крају одштампајте вредности променљиве.

#!/бин/басх
док гетоптс ':у мени:'љут;урадити
случају $ арг у
и) ИД=$ ОПТАРГ;;
н) Име=$ ОПТАРГ;;
м) Датум производње=$ ОПТАРГ;;
И) Истиче=$ ОПТАРГ;;
есац
Готово
Избацио ' н$ ИД $ Наме $ Мануфацтуринг_дате $ Екпире_дате н'

Покрените датотеку са следећим опцијама и вредностима аргумената. Овде је п100 вредност -и опције, 'Хот Цаке' је вредност -н опције, '01 -01-2018 ′ је вредност -м опције и '06 -01-2018 'је вредност - е опцију.

$басхцмдлине3.схп001 „Топли колач“ '01 -01-2018 ' '06 -01-2018 '

Када требате послати једноставне вриједности у скрипти, боље је користити варијабле аргумената. Али ако желите да шаљете податке на форматиран начин, боље је користити функцију гетоптс за преузимање вредности аргумената. За више информација погледајте Видео !