Баштагандарга колдонмо үчүн баш - Input параметрлери

бул үйрөнчүктөр үчүн Баштоочу тарабынан жазылган гана BASH куралы деп аталат BASH катар Beginners колдонмонун 2-бөлүгү менен жылуу тосуп алгыла +.

Бул колдонмодо окурмандары мен өзүмдүн билимимди жана үмүт менен ага бардык жылдын акырына карата абал боюнча биз бир кыйла акылдуу скрипттерди жаза алат куруп, алардын билимдерин бекемдөөгө болот.

Өткөн жумада мен жаап биринчи жазма түзүү жөн эле сөздөрдү "Hello World" көрсөткөн. Бул, мисалы, текст редакторлору сыяктуу темаларды камтыйт, кандай терминалдык терезе, сенин скрипттерин, сөздөрдү "Hello World" жана кээ бир мыкты упай тырмакчага сыяктуу качып өзгөчөлүктөрүнө өзгөрүүлөр кантип салып ачуу ( "").

Ушул жумада мен киргизүү параметрлерин жабуу үчүн бара жатам. буюмду ушундай окутуу башка жол бар, бирок алар бир кыйла төмөн деңгээл заттын секирип, балким, өтө көп маалымат менен камсыз таба бар.

Эмне бир Parameter?

акыркы үйрөтмө тартып "Hello World" ариби менен баары абдан статикалык болду. скрипт чынында эле көп учурда бардык кылган эмес.

"Hello World" арибин биз кантип жакшыртсак болот?

Эмне, аны иштете турган адам салам бир ариби жөнүндө эмне айтууга болот? Анын ордуна, "Hello World" деп ал "Hello Баян", "Hello Тим" же "Ууу" деп жооп берет.

Киргизүү параметрлерин кабыл алуу жөндөмү биз үч скрипттерин "hellogary.sh" жазуу керек, "hellotim.sh" жана "hellodolly.sh".

Биздин скрипт киргизүү параметрлерин окуп берүү менен, биз эч кимге салам бир арибин колдонгон болот.

Бул терминал терезе (Ctrl + Alt + T) ачууга жана суроолор төмөнкүдөй жазуу менен багыт үчүн: ( CD буйругу жөнүндө )

CD ариптерин

Төмөнкүдөй жазуу менен greetme.sh аталган жаңы жазма түзүү: ( сенсордук буйругу жөнүндө )

тийип greetme.sh

Келгиле, терүү аркылуу сүйүктүү редактору скрипттер көрүү: ( нано буйругу жөнүндө )

нано greetme.sh

Nano ичинде төмөнкү текстти кириш:

#! / бин / Баш Эхо "деп жазып $ @"

Пресс-CTRL жана Оо, папка, анан CTRL жана X билэни жабуу үчүн, куткарыш үчүн келгем +.

скрипт сиздин ат менен алмаштыруу буйрук сабында төмөнкүдөй кирип топтоду.

Sh greetme.sh

Менин ысымым менен скриптер, анда бул сөздөрдү "Hello Гари" көрсөтөт.

Биринчи сапта Баш скрипт сааты аныктоо үчүн колдонулат! / бин / Баш сызык бар.

экинчи сап жазып койбойлубу сөз кайталоого опреаторун колдонот да, анан башка $ @ жазуу бар. ( Болжол менен жаңырык буйрук )

$ @ Скрипт ысымы менен бирге киргизилген ар бир параметрин көрсөтүүгө багытталган. Сиз "Sh greetme.sh Тим" сөздөрүн терилген болсо "деп жазып Тим" илинип турган. Сиз "greetme.sh Тим Смит:" Анда сөздөр "деп жазып Тим Смит" терилген Эгер көрсөтүлгөн болот.

greetme.sh жазуусу гана биринчи аты менен деп жазып койбойлубу үчүн жакшы болушу мүмкүн. Эч ким, алар мага жолукканда "деп жазып Гари Newell" дейт, алар да "деп жазып Гари" деп.

ал биринчи параметр колдонгон ошондуктан арибин өзгөртүү көрөлү. нано-жылы greetme.sh жазма ач төмөнкүдөй жазуу менен:

нано greetme.sh

ал төмөнкүдөй үчүн скрипттер өзгөртүү:

#! / бин / Баш Эхо "деп жазып $ 1"

Ctrl жана X. басуу менен Ctrl жана O жана андан чыгуу басуу менен скрипттер сактоо

Төмөндө көрсөтүлгөн скрипттер (сенин менен менин атымды алмаштыруу) Нускасы:

Sh greetme.sh Гари Newell

Эгер жөн гана "деп жазып Гари" деп скриптер кийин (же үмүт "деп жазып" жана аты кандай болбосун.

$ Белгиси негизинен Эхо буйругуна дейт 1 өткөндөн кийин, биринчи жолу колдонулат. Сиз $ 2 $ 1 ордуна болсо, анда ал "деп жазып Арсенал" (же атасынын аты болбосун) көрсөтө турган.

Сиз $ 3 $ 2 ордуна жана жөн гана 2-параметрлери менен жазуу чуркап Баса, эгер чыгаруу жөн гана "Hello" болмок.

Мен чынында эле киргизилген параметрлердин санын көрсөтүү менен чечүүгө мүмкүн болгон жана кийинчерээк Кирүү текшерүү максатында параметр эсебин кантип колдонууну көрсөтүү болот.

төмөнкү параметрлерди саны greetme.sh жазуусу (нано greetme.sh) ачык кирип өзгөрүүлөр жана текстти өзгөртүүлөрдү киргизүү үчүн:

#! / бин / Баш Эхо "Сен # аттарын $ кирген" "деп жазып $ @" Эхо

Пресс-CTRL жана Оо, жазуу жана CTRL жана X Nano чыгуу үчүн сактап калуу үчүн.

2-саптагы $ # кирген параметрлеринин санын көрсөтөт.

Буга чейин бул бардык роман, бирок абдан пайдалуу жок болуп калды. Ким жөн гана "салам" көрсөтүп скриптти керек?

Эхо отчеттун үчүн реалдуу колдонуу колдонуучуга дайын менен мазмундуу өндүрүүнү камсыз кылуу болуп саналат. Сиз / Папканы ачуу башкаруу олуттуу саны кычыратып жана билэ камтыйт татаал нерсе кыла ал жолдо ар бир кадамын эмне болуп жатканын колдонуучуга көрсөтүү үчүн пайдалуу болмок келет деп ойлошот мүмкүн.

Ал эми, киргизүү параметрлери сиздин скрипт ара кылат. киргизүү параметрлеринин болбосо баарын ушундай, бирок бир аз ар түрдүү аталыштар менен кылып скриптердин ондогон керек.

Мунун баарын эске алуу менен, аны билүү үчүн жакшы идея кандайдыр бир башка пайдалуу киргизүү параметрлер менен бир коду SNIPPET, алардын баарын камтыйт бар.

Сиздин greetme.sh скрипт ачып, аны төмөнкүдөй өзгөртүүлөрдү киргизүү:

! # / бин / Баш Эхо "Filename: 0 $" Эхо "Process ID: $$" Эхо "---------------------------- --- "Эхо" сен $ # аттарын кирген "Эхо" деп жазып $ @ "

билэни Press CTRL жана Оо, сактап калуу үчүн жана CTRL жана X чыгуу.

Азыр скриптер (өз аты менен алмаштырылсын).

Sh greetme.sh

Бул жолу скрипт төмөнкү көрсөтүп:

Filename: greetme.sh Process ID: 18595 ------------------------------ сиз жазып койбойлубу Гари Newell 2 аттарын кирди

тексттин биринчи саптагы $ 0 иштеп жатат арибин атын көрсөтөт. ал доллары нөл доллардын о эмес экенин белгилешет.

Экинчи саптагы $$ Сенин иштеп жатат арибин жараяны ID көрсөтөт. Бул эмне үчүн пайдалуу? Эгер планга бир скриптер, анда сиз жөн гана сиз алкагында жазуу чуркап келсе, Ctrl жана C. басуу менен, аны жокко чыгара алат жана ал керек болгон системага зыян келтирүү менен бирдей эле иш укурук жасап баштаган же баштады аны өлтүрүш үчүн.

Сиз скрипт жараяны ID керек алкагында иштеп скриптти өлтүрүү үчүн. скрипт анын өндүрүшүнүн алкагында жараяны ID берген болсо, анда ал туура эмес болмок. ( Болжол менен даана жана буйруктарды өлтүрүү )

Акыр-аягы, Мен бул маселе менен аягына чейин мен чыгаруу кайда жөнүндө талкуулоо үчүн келген. Ар бир жолу скрипт азырынча чыгаруу болду экранда келет.

скрипт чыгаруу чыгаруучу делосуна жазуу үчүн кыйла жайылган. Бул жазуу төмөнкүчө иштетүү үчүн:

Sh greetme.sh Гари> greetme.log

> Жогоруда буйрук белгиси greetme.log деп аталган делосуна текст "деп жазып Гари" чыгарат.

Эгер> белгиси менен скриптер сайын ал чыгаруусу мазмунун үстүнө. Сиз делосуна толуктоого ордуна келсе> >> менен.

Жыйынтык

Сиз азыр экрандагы текстти жазууга жана киргизүү параметрлерин кабыл алуу мүмкүнчүлүгүнө ээ болушу керек.