Роҳнамои навтарин барои Муштарак - Параметрҳои дохилӣ

Ба қисмҳои 2-юми Роҳнамои сарнавишт ворид шавед Ба силсилаи BASH, ки дар он ягона омӯзиши BASH мебошад, ки аз ҷониби ибтидо барои навиштор навишта шудааст.

Одамоне, ки ин дастурро мефаҳмонад, донишҳои худро бинанд, зеро ман донишамонро баланд мекунам ва умедворам, ки дар охири он мо ҳама қобилияти навиштани якчанд скриптҳои оддиро нависем.

Ҳафтаи гузашта ман тасвири аввалини худро, ки калимаҳои "Hello World" -ро нишон доданд, фаро гирифтам. Он мавзӯъҳоро ба монанди муҳаррирҳои матн, чӣ тавр кушодани тирезаи терминал, ки дар куҷо навиштаҷоти худро, чӣ тавр нишон додани калимаҳои "Hello World" ва баъзе нуқтаҳои хубтарини аломатҳои раҳоӣ, аз қабили нохунакҳо ("") фаро мегирад.

Ҳафтаи мазкур ман бояд параметрҳои воридшударо фаро гирам. Роҳбарони дигар ҳастанд, ки ин гуна чизро таълим медиҳанд, вале ман мефаҳмам, ки онҳо ба баъзе маводҳои пасти оддӣ садам мезананд ва шояд маълумоти зиёдро пешниҳод кунанд.

Параметри чист?

Дар матни "Hello World" аз охирин таблиғот ҳамаи ин статистикӣ буд. Савол дар ҳақиқат коре накардааст.

Чӣ тавр мо метавонем дар бораи "Сухан дар Инҷил" тарҷума кунем?

Дар бораи як скрипт, ки шахсро сарварӣ мекунад, чӣ гуна муносибат мекунад? Ба ҷои он ки "Hello World" бигӯем, "Hello Gary", "Hello Tim" ё "Hello Dolly" мегӯянд.

Бе қобилияти қабули параметрҳои дохилӣ мо бояд се бастаи "hellogary.sh", "hellotim.sh" ва "hellodolly.sh" нависем.

Бо иҷозати таблиғи мо ба параметрҳои вурудӣ мо метавонем як дастнависро истифода барем, то ки ҳама касро бедор созем.

Барои ин кушодани тирезаи терминал (CTRL + ALT + T) ва ба папкаи скриптҳои худ ба воситаи нависед: ( дар бораи фармони Cd )

сутунҳои cd

Сохтани скрипти наве, ки бо номи "greetme.sh" номида мешавад, нависед:

Тақвим

Навиштани скриптро бо муҳаррири дӯстдоштаи худ кушоед: ( дар бораи фармонҳои нано )

нано greetme.sh

Nano дар матни зер ворид кунед:

#! / bin / bash echo "hello $ @"

CTRL ва O -ро барои захира кардани файл ва сипас CTRL ва X пахш кунед.

Барои идора кардани скрипт, ба поён ба хатти фармон, ки бо номи худ иваз кунед, дохил кунед.

ш

Агар ман бо номи ман бо скрипт иҷро шавам, калимаҳои "Hello Gary" -ро нишон медиҳад.

Хати аввал дорои #! / Bin / bash хати аст, ки барои муайян кардани парванда ҳамчун скрипт bash истифода мешавад.

Хати дуюм echo изҳоротро барои echo калимаи калима истифода мебарад ва баъд $ @ noteation аҷиб аст. ( дар бораи фармонҳои echo )

$ @ Васеъшударо нишон медиҳад, ки ҳар як параметре, ки дар якҷоягӣ бо номи скрипт ворид шудааст. Пас, агар шумо навишти "greetme.sh tim" калимаҳои "hello tim" -ро нишон диҳед. Агар шумо "greetme.sh tim smith" -ро чоп карда метавонед, пас калимаҳои "hello tim smith" нишон дода мешавад.

Он метавонад барои скрипти Greetme.sh барои хубтар истифода аз номи якум истифода шавад. Ҳеҷ кас намегӯяд, ки "гуло гари навел" вақте ки онҳо бо ман вохӯранд, мегӯянд, ки "гул гари" мегӯянд.

Биёед скриптро тағйир диҳем, то ин ки он параметрро аввал истифода барад. Навиштани варианти гнимме.шро бо нанависон кушоед:

нано greetme.sh

Тағир додани скрипт, то ки он хонда шавад:

#! / bin / bash echo "hello $ 1"

Тугмаи сабкро бо пахшкунии CTRL ва O ва сипас бо пахшкунии CTRL ва X.

Сутунро ба таври зерин нишон диҳед (номи худро бо шумо иваз кунед):

Гари навел

Вақте ки шумо скриптиро иҷро мекунед, он танҳо "гул гари" мегӯянд (ё "умед" аст), ва ҳар чӣ ном дорад.

1 пас аз нишонаи $ ибтидоӣ ба фармоне, ки бо энергия ишора мекунад, параметри аввалро истифода баред. Агар шумо $ 1 бо $ 2 иваз кунед, он гоҳ "hello newell" -ро нишон медиҳад (ё ҳар он чизе, ки шумо ном дорад).

Ногуфта намонад, ки агар шумо $ 2 бо $ 3 иваз карда шуда будед ва бо скрипт танҳо бо 2 параметр иҷро шуд, баромади оддӣ "Hello" бошад.

Ин имкон медиҳад, ки нишондиҳанда ва идора кардани шумораи параметрҳои воқеан воридшуда ва дар охири тренингҳо ман нишон диҳам, ки чӣ тавр истифода бурдани параметр барои мақсадҳои тасдиқкунанда истифода бурда мешавад.

Барои нишон додани рақами параметрҳо сенарияи salat.share (nano greetme.sh) ва матни зеринро тағйир диҳед:

#! / bin / bash echo "шумо ворид кардани $ # номҳо" echo "hello $ @"

CTRL ва O -ро барои сабт кардани скрипт ва CTRL ва X пахш кунед.

$ # Дар сатри 2 шумораи адади параметрҳо нишон дода шудааст.

Ҳамин тариқ, ҳамаи ин инъикос шудааст, аммо хеле муфид нест. Кадом як скриптро, ки танҳо "Салом" нишон медиҳад?

Истифодаи ҳақиқии echo изҳороти эволютсия аст, ки ба истеҳсолкунанда ба таври муфассал ва муфиди натиҷа диҳад. Агар шумо тасаввур кунед, ки шумо мехоҳед, ки коре мушкиле дошта бошед, ки як қатор рақамҳои вазнин ва коғази файлро дар бар мегирад, он барои истифодабарандагон чӣ гуна ҳар як қадами роҳро нишон медиҳад.

Баръакс, параметрҳои воридотӣ интерактивии худро ба кор мебаранд. Бе параметрҳои дохилӣ шумо ба даҳҳо скриптҳо лозим аст, ки ҳамаи корҳои ба ин монандро фароҳам меоранд, аммо бо номҳои каме гуногун.

Бо ин ҳама дар инҷо баъзе параметрҳои дигари муфиди интерфейси вуҷуд доранд, ки он хуб аст, ки бидонед ва ман дар ҳамаи рамзҳои рамзӣ ба онҳо дохил карда хоҳам шуд.

Тарҷумаи salam greetings.sh кушода ва онро ба таври зерин такмил диҳед:

#! / bin / bash echo "Файл: $ 0" echo "Рақам: ID" echo "---------------------------- --- "echo" шумо ворид кардаед, ки $ # номи "echo" hello $ @ "

CTRL ва O -ро барои захира кардани файл ва CTRL ва X пахш кунед.

Акнун иҷро кардани скрипт (бо номи худ иваз кунед).

ш

Дар ин ҳолат сутуни зерин намоиш медиҳад:

Номи файл: greetme.sh Рақами протокол: 18595 ------------------------------ Шумо 2 номаро ворид кардед

$ 0 дар сатри якуми сутун номе, ки шумо иҷро мекунед, нишон медиҳад. Аҳамият диҳед, ки ин нарх аст ва на он доллар.

Дар сатри дуюм, сатр аз рамзи раванди скрипт нишон медиҳад. Чаро ин фоиданок аст? Агар шумо скриптро дар қаблӣ иҷро кунед, шумо метавонед онро бо пахшкунии CTRL ва C пахш кунед. Агар шумо скриптро дар замина иҷро кардаед ва он давраро ба кор андохтед ва дар ҳамон ҳолат ба кор шурӯъ кардед барои куштани он.

Барои нобуд кардани скрипт дар замина кор карда, шумо коркарди раванди скриптро талаб карда истодаед. Агар он скриптро аз протокол рамзи тақсимоти он ба даст орад, хуб нест. ( дар бораи ps ва куштани фармонҳо )

Ниҳоят, пеш аз он ки ман бо ин мавзӯъ хотима диҳам, ман мехостам, ки дар бораи куҷо куҷо меравам. Ҳар вақте ки скрипт то ҳол кор мекунад, дар экрани коғаз баромадан намоиш дода мешавад.

Ин хеле маъмул аст, ки барои чопи скрипт ба файли хурди навишташуда навишта шудааст. Барои ин корро иҷро кунед:

Шабакаи гариб> greetme.log

> Рамзи фармон дар боло ба матн "hello gary" ба файли called greetme.log.

Ҳар боре, ки шумо бо скрипт бо сим> рамз иҷро мекунед, он мундариҷаи файли баромадро бар мегардонад. Агар шумо хоҳед, ки ба файли такрорӣ илова кунед, онро бо> иваз кунед.

Натиҷа

Шумо бояд акнун ба матн нависед ва параметрҳои дохилиро қабул кунед.