Бастауыш нұсқаулық BASH - Кіру параметрлері

Бастауыш нұсқаулықтың 2-ші бөлігіне қош келдіңіз, бұл BASH сериясына, ол жаңадан бастағандар үшін жаңадан бастаған жалғыз BASH оқыту құралы.

Осы нұсқаулықты оқырмандар менің білімімді нығайтып, оның соңына дейін үміттенемін, өйткені кейбір ақылды сценарийлерді жаза алатын боламыз.

Өткен аптада «Сәлем әлем» деген сөздерді қарап шыққан алғашқы сценарийіңді құрастырдым . Ол мәтін редакторлары, терминал терезесін ашу, сценарийлерді қою, «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 пәрмені туралы )

nano greetme.sh

Нанодағы келесі мәтінді енгізіңіз:

#! / bin / bash echo «hello $ @»

Файлды сақтау үшін CTRL және O пернелерін, одан кейін файлды жабу үшін CTRL және X пернелерін басыңыз.

Сценарийді іске қосу үшін аты-жөніңізді ауыстыратын пәрмен жолына төмендегіні енгізіңіз.

sh greetme.sh

Сценарийді менің атыммен іске асыратын болсам, ол «Hello Gary» сөзін көрсетеді.

Бірінші жолда файлды bash сценарийі ретінде анықтау үшін пайдаланылатын #! / Bin / bash сызығы бар.

Екінші жолда сәлемдесу сөзін жаңғырту үшін эхо-мәлімдеме қолданылады, содан кейін елде $ @ белгісі бар. ( эхо командалары туралы )

$ @ Сценарий атымен бірге енгізілген әрбір параметрді көрсету үшін кеңейтіледі. Сондықтан егер сіз «sh greetme.sh tim» деп жазсаңыз, «сәлемдесу» сөздері көрсетіледі. Егер сіз «greetme.sh tim smith» деп жазсаңыз, «hello tim smith» сөзі көрсетіледі.

Greetme.sh сценарийі жай ғана аты арқылы ғана сәлем айтуға болады. Ешкім де мені қарсы алған кезде «hello gary newell» дейді, бірақ олар «сәлем» деп айтуға болады.

Сценарийді бірінші параметрді ғана қолданатын етіп өзгертейік. Nanoda greetme.sh сценарийін төмендегілерді теру арқылы ашыңыз:

nano greetme.sh

Сценарийді келесідей оқитын етіп өзгертіңіз:

#! / bin / bash echo «hello $ 1»

Сценарийді CTRL және O пернелер тіркесімімен басып, одан кейін CTRL және X пернелерін басу арқылы шығыңыз.

Сценарийді төменде көрсетілгендей іске қосыңыз (менің атымды өзіңізбен алмастырыңыз):

sh greetme.sh gary newell

Сценарийді іске қосқан кезде жай ғана «hello gary» (немесе үміттенемін «сәлем» және сіздің атыңыз қандай болса да) деп айтады.

$ Символынан кейін 1 негізінен echo пәрменіне айтады, бірінші параметрді пайдаланыңыз. Егер $ 1-ді $ 2-імен алмастыратын болсаңыз, ол «hello newell» (немесе тегі болса да) көрсететін болады.

Айтпақшы, $ 2-ді $ 3-мен алмастырып, сценарийді тек 2 параметрмен орындасаңыз, өнім тек «Сәлем» болар еді.

Енгізілген параметрлердің санын көрсету және өңдеуге болады, ал кейінірек оқулықтарда мен растау мақсаттары үшін параметрлерді қалай пайдалану керектігін көрсететін боламын.

Енгізілген параметрлердің санын көрсету үшін greetme.sh сценарийін (nano greetme.sh) ашыңыз және мәтінді төмендегідей өзгертіңіз:

#! / bin / bash echo «$ # атын енгіздіңіз» echo «hello $ @»

Сценарийді сақтау үшін CTRL және O түймелерін және нанодан шығу үшін CTRL және X пернелерін басыңыз.

2-жолдағы $ # енгізілген параметрлердің санын көрсетеді.

Әзірге бұл барлық жаңа, бірақ өте пайдалы емес. Кімге «сәлем» деген сценарий қажет?

Эхо-мәлімдемелерді нақты пайдалану пайдаланушыға нақты және мағыналы шығуды қамтамасыз ету болып табылады. Егер Сіз күрделі бір нәрсе жасауға тырысқыңыз келетінін елестетсеңіз, онда кейбір қиындықтар мен файлдар / қапшықтың манипуляциясы бар, пайдаланушыға жолдың әр қадамы болып жатқан нәрсені көрсету пайдалы болады.

Керісінше, енгізу параметрлері сценарийді интерактивті етеді. Енгізу параметрлері болмаса, бәрі өте ұқсас нәрселерді жасайтын бірнеше сценарий қажет болады, бірақ олар әртүрлі есімдермен ерекшеленеді.

Осының бәрін есте сақтау үшін кейбір пайдалы енгізу параметрлері бар, олар білудің жақсы идеясы және олардың бәрін бір кодтық үзіндіде қосатын боламын.

Greetme.sh сценарийін ашыңыз және оны келесідей өзгертіңіз:

#! / bin / bash echo «Файл атауы: $ 0» echo «Процесс ID: $$» echo «---------------------------- --- «echo» сіз $ # әріптерін енгіздіңіз «echo» hello $ @ «

Файлды сақтау үшін CTRL және O пернелерін, ал шығу үшін CTRL және X пернелерін басыңыз.

Қазір сценарийді іске қосыңыз (сіздің атыңызбен ауыстырыңыз).

sh greetme.sh

Бұл жолы сценарий төмендегілерді көрсетеді:

Файл аты: greetme.sh Процесс ID: 18595 ------------------------------ сіз 2 атауды енгіздіңіз hello gary newell

Сценарийдің бірінші жолында $ 0 сіз жұмыс істеп жатқан сценарийдің атын көрсетеді. Назар аударыңыз, бұл доллар нөл емес, доллар.

Екінші жолдағы $ сіздің іске қосылған сценарийдің үрдіс идентификаторын көрсетеді. Неліктен бұл пайдалы? Егер сіз сценарийді алдыңғы жоспарда іске қоссаңыз, CTRL және C пернелерін басу арқылы оны болдырмауға болады. Сценарийді фондық режимде іске қосқаныңызда және циклды бастады және сол нәрсені қайталап бастады немесе сіздің жүйеңізге зақым келтіре бастады, сізге қажет оны өлтіру.

Фондық режимде жұмыс істейтін сценарийді жою үшін, сценарийдің процестің идентификаторы қажет. Егер сценарий процесті өз шығарылымының бір бөлігі ретінде көрсеткен болса, жақсы болмас еді. ( PS туралы және командаларды жою )

Ақыр соңында, осы тақырыпты аяқтамас бұрын, шығарылымның қайда екенін талқылағым келді. Әр уақытта сценарий іске қосылған кезде, экранда экранға шығады.

Сценарийлердің шығуын шығару файлына жазу әдеттегідей. Мұны орындау үшін сценарийді келесідей іске қосыңыз:

sh greetme.sh gary> greetme.log

Жоғарыдағы команданың> таңбасы greetme.log деп аталатын файлға «hello gary» мәтінін шығарады.

Сценарийді> белгісімен іске қосқан сайын, ол шығыс файлының мазмұнын қайта жазады. Егер файлға қосуды қаласаңыз,> with >> дегенді ауыстырыңыз.

Резюме

Енді экранға мәтін жазуға және кіріс параметрлерін қабылдауға мүмкіндігіңіз бар.