Кіраўніцтва для пачаткоўцаў BASH - Уваходныя параметры

Сардэчна запрашаем на 2-й часткі Кіраўніцтва для пачаткоўцаў серыі BASH, які унікальны тым, што гэта адзіны BASH падручнік напісаны пачаткоўцаў для пачаткоўцаў.

Чытачы гэтага кіраўніцтва будуць нарошчваць свае веды, як я будаваць свае веды і, спадзяюся, да канца ўсяго гэтага мы зможам пісаць некаторыя даволі разумныя сцэнары.

На мінулым тыдні я пакрываў стварыць першы сцэнар , які проста адлюстроўваныя словы «Hello World». Яна ахоплівае такія тэмы, як тэкставыя рэдактары, як адкрыць акно тэрмінала, куды пакласці вашыя сцэнары, як адлюстроўваць словы «Hello World» і некаторыя тонкасці па экрануе сімвалаў, такіх як двукоссі ( «»).

На гэтым тыдні я збіраюся пакрыць ўваходныя параметры. Ёсць іншыя кіраўніцтва, якія вучаць такога роду рэчы, але я лічу, што яны скачуць у некаторыя рэчы даволі нізкім узроўні і, магчыма, даць занадта шмат інфармацыі.

Што такое параметр?

У «Hello World» сцэнар з апошняга ўрока усё гэта было вельмі статычна. Сцэнар сапраўды не рабіць наогул.

Як мы маглі б палепшыць на сцэнар «Hello World»?

Як наконт сцэнара, які сустракае чалавека, які запускае яго? Замест таго каб сказаць «Hello World» ён будзе казаць «Прывітанне Гэры», «Прывітанне Цім» або «Hello Dolly».

Не маючы магчымасці прымаць ўваходныя параметры, мы павінны былі б напісаць тры сцэнары «hellogary.sh», «hellotim.sh» і «hellodolly.sh».

Дазваляючы наш скрыпт для чытання ўваходных параметраў мы можам выкарыстоўваць адзін сцэнар, каб павітаць каго-небудзь.

Для гэтага адкрыйце акно тэрмінала (CTRL + ALT + T) і перайдзіце ў тэчку скрыптоў, увёўшы наступную каманду : ( аб камандзе кд )

CD скрыпты

Стварыце новы сцэнар пад назвай greetme.sh, увёўшы наступнае: ( аб камандзе дотыку )

пакратаць greetme.sh

Адкрыйце сцэнар у вашым каханым рэдактары, набраўшы наступнае: ( аб камандзе нана )

нана greetme.sh

Калі ласка, увядзіце наступны тэкст у нана:

#! / Bin / Баш рэха "прывітанне $ @"

Націсніце CTRL і O, каб захаваць файл, а затым CT і X, каб закрыць файл.

Для запуску сцэнара увядзіце наступную каманду ў камандным радку, які замяняе з вашым імем.

ш greetme.sh

Калі я запускаю скрыпт з маім імем ён адлюстроўвае словы «Прывітанне Гары».

Першы радок мае радок #! / Bin / Баш, які выкарыстоўваецца для ідэнтыфікацыі файла як Баш скрыпт.

Другая радок выкарыстоўвае рэха заявы рэха словы прывітання, а затым ёсць дзіўны $ @ натацыя. ( Аб рэха - каманда )

$ @ Пашыраецца для адлюстравання кожнага параметру, які быў уведзены разам з імем сцэнара. Так што, калі вы ўвялі «ш greetme.sh Цім» словы «прывітанне цім» будзе адлюстроўвацца. Калі вы набралі «greetme.sh Цім Сміт», то словы «прывітанне Цім Сміт» будзе адлюстроўвацца.

Гэта можа быць добра для greetme.sh сцэнар проста павітацца, выкарыстоўваючы толькі першае імя. Ніхто не кажа «прывітанне Гэры Ньюэлл», калі яны сустракаюць мяне, яны маглі б сказаць «прывітанне», хоць Гэры.

Давайце зменім сцэнар так, што ён проста выкарыстоўвае першы параметр. Адкрываюць greetme.sh скрыпт у нана-, увёўшы наступнае:

нана greetme.sh

Зменіце сцэнар так, што ён выглядае наступным чынам:

#! / Bin / Баш рэха "прывітанне $ 1"

Захавайце сцэнар, націснуўшы CTRL і O, а затым выйсці, націснуўшы CTRL і X.

Запусціце сцэнар, як паказана ніжэй (замяніць маё імя з тваім):

ш greetme.sh Newell Гэры

Пры запуску скрыпту ён будзе проста сказаць «прывітанне Gary» (або, спадзяюся, «прывітанне», і ўсё, што ваша імя.

1 пасьля таго, як сімвал $ у асноўным кажа рэха-каманды, выкарыстоўвайце першы параметр. Калі вы заменіце $ 1 з $ 2, то ён будзе адлюстроўваць «прывітанне Ньюэла» (ці нешта ваша прозвішча).

Дарэчы, калі вы замянілі $ 2 з $ 3 і пабег сцэнар толькі з 2 параметрамі выхад быў бы проста «Прывітанне».

Можна адлюстроўваць і апрацоўваць колькасць параметраў фактычна уведзеных і ў наступных падручніках я буду паказваць, як выкарыстоўваць падлік параметраў для мэт праверкі.

Для таго, каб адлюстраваць колькасць параметраў ўвайшлі адкрыйце greetme.sh скрыпт (нана greetme.sh) і змяніць тэкст наступным чынам:

#! / Bin / Баш рэха "Вы ўвялі $ # імёны" рэха "прывітанне $ @"

Націсніце CTRL і O, каб захаваць сцэнар і CTRL і X, каб выйсці з нана.

$ # На 2-ой радку адлюстроўваецца колькасць параметраў, уведзеных.

Да гэтага часу ўсё гэта было новым, але не вельмі карысна. Каму патрэбен скрыпт, які проста адлюстроўвае «прывітанне»?

Рэальнае выкарыстанне для рэха-заявы з'яўляецца прадастаўленне падрабязнага і змястоўнага вываду карыстальніку. Калі вы можаце сабе ўявіць, што вы хочаце зрабіць нешта складанае, якое ўключае ў сябе некаторыя сур'ёзныя колькасці храбусценне і маніпуляцыі файла / папкі, было б карысна, каб паказаць карыстальніку, што адбываецца кожны крок шляху.

У адрозненне ад ўваходных параметраў робяць ваш скрыпт інтэрактыўным. Без ўваходных параметраў, якія вы павінны былі б дзесяткі сцэнарыяў ўсё робяць вельмі падобныя рэчы, але з трохі рознымі імёнамі.

Пры ўсім гэтым на ўвазе, што ёсць некаторыя іншыя параметры карысныя ўводу, што гэта добрая ідэя, каб ведаць, і я ўключу іх усё ў адным фрагменце кода.

Адкрыйце свой greetme.sh сцэнар і змяніць яго наступным чынам:

#! / Bin / Баш рэха "Імя файла: $ 0" рэха "Ідэнтыфікатар працэсу: $$" рэха «---------------------------- --- »рэха" вы ўвялі $ # імёны "рэха" прывітанне $ @ "

Націсніце CTRL і O, каб захаваць файл і CTRL і X, каб выйсці.

Зараз запусціце скрыпт (заменіце з вашым імем).

ш greetme.sh

На гэты раз сцэнар будзе выглядаць наступным чынам:

Імя файла: greetme.sh Process ID: 18595 ------------------------------ Вы ўвялі 2 назвы прывітанне Newell Гэры

$ 0 на першым радку сцэнара адлюстроўвае імя скрыпту вы працуеце. Звярніце ўвагу, што долар нуль, а не даляр а.

$$ на другім радку адлюстроўваецца ідэнтыфікатар працэсу вашага сцэнара пры запуску. Чаму гэта карысна? Калі вы карыстаецеся скрыпт на пярэднім плане вы можаце адмяніць яго, проста націснуўшы CTRL і C. калі вы запускалі скрыпт ў фонавым рэжыме, і ён пачаў цыкл і рабіць тое ж самае зноў і зноў, або пачаў прычыненне шкоды вашай сістэме вам неабходна будзе каб забіць яго.

Для таго, каб забіць скрыпт працуе ў фонавым рэжыме вам патрэбен ідэнтыфікатар працэсу сцэнара. Не было б добра, калі сцэнар даў ідэнтыфікатар працэсу ў якасці часткі сваёй прадукцыі. ( Аб сабаку і забіць каманды )

Нарэшце, перш чым я скончу з гэтай тэмай я хацеў абмеркаваць, дзе выхад ідзе. Кожны раз, калі сцэнар запуску дагэтуль выхад быў на экране.

Гэта даволі часта для вываду сцэнара павінны быць запісаныя ў выходны файл. Для гэтага запусціце скрыпт наступным чынам:

ш greetme.sh Гэры> greetme.log

Сімвал> у камандзе вышэй выводзіць тэкст «прывітанне Гэры» у файл пад назвай greetme.log.

Кожны раз, калі вы запускаеце скрыпт з сімвалам> перапісвае змесціва выхаднога файла. Калі вы аддаеце перавагу, каб дадаць у файл замяніць> з >>.

рэзюмэ

Цяпер вы павінны быць у стане напісаць тэкст на экране і прымаць ўваходныя параметры.