Բարի գալուստ Beginners Guide- ի 2-րդ մասը, BASH- ի շարքին, որը եզակի է, որ այն սկսում է սկսնակների կողմից գրված միակ BASH- ի ձեռնարկը:
Այս ուղեցույցի ընթերցողները կստեղծեն իրենց գիտելիքները, երբ ես իմ գիտելիքները կկիսեմ եւ հուսով եմ, որ վերջում կկարողանանք գրել բավականին խելացի սցենարներ:
Անցյալ շաբաթ ես լուսաբանեցի ձեր առաջին սցենարը, որը պարզապես ցուցադրեց «Բարեւ աշխարհ» բառերը: Այն ընդգրկում է տեքստային խմբագիրներ, թե ինչպես բացել տերմինալային պատուհան, որտեղ տեղադրեք ձեր սցենարները, ինչպես ցույց տաք «Բարեւ աշխարհ» բառերը եւ մի քանի նուրբ կետեր փրկության նիշերի վրա, ինչպիսիք են «մեջբերումները» («"):
Այս շաբաթ ես մտադիր եմ մուտքագրել պարամետրերը: Կան այլ ուղեցույցներ, որոնք սովորեցնում են այսպիսի բան, բայց ես գտնում եմ, որ նրանք ցատկում են բավականին ցածր մակարդակի նյութեր եւ գուցե շատ ինֆորմացիա են տրամադրում:
Ինչ է պարամետրը:
«Բարեւ աշխարհ» սցենարով վերջին ուսուցչից այն ամենը շատ ստատիկ էր: Սցենարը իսկապես շատ բան չի արել:
Ինչպես կարող ենք բարելավել «Բարեւ աշխարհ» սցենարով:
Ինչ վերաբերում է մի սցենարի, որը ողջունում է այն մարդուն, ով վարում է այն: Փոխարենը «Բարեւի աշխարհ» ասելու փոխարեն դա կպատասխանի «Hello Gary», «Hello Tim» կամ «Hello Dolly»:
Առանց ներածման պարամետրերը ընդունելու ունակությունը պետք է գրել երեք «hellogary.sh», «hellotim.sh» եւ «hellodolly.sh» սցենարները:
Թույլ տալով, որ մեր սցենարը կարդալու ներդրման պարամետրերը կարող ենք օգտագործել մեկ սցենար, ողջունելու համար:
Դա կատարելու համար բացեք տերմինալային պատուհան (CTRL + ALT + T) եւ նավարկեք ձեր սցենարների թղթապանակը հետեւյալ տողերով մուտքագրելով ( cd հրամանի մասին )
cd սցենարներՍտեղծեք greetme.sh կոչվող նոր սցենար `մուտքագրելով հետեւյալը ( touch touch մասին )
touch greetme.shԲացեք սցենարը ձեր սիրած խմբում, մուտքագրելով հետեւյալը ( nano հրամանների մասին )
նանո greetme.shՄուտքագրեք հետեւյալ տեքստը nano- ում:
#! / bin / bash echo "Բարեւ $ @"CTRL- ի եւ O- ի համար սեղմել ֆայլը, այնուհետեւ CTRL- ը եւ X- ը փակել ֆայլը:
Սցենարն առաջադրելու համար մուտքագրեք հետեւյալը հրամանի տողում, փոխարինելով ձեր անունով:
sh greetme.shԵթե ես սցենար եմ գործադրում իմ անունով, ապա այն կցուցադրի «Hello Gary» բառերը:
Առաջին տողն ունի #! / Bin / bash գիծ, որն օգտագործվում է ֆայլի բաշ սցենարով ճանաչելու համար:
Երկրորդ տողում օգտագործվում է արձագանքման հայտարարություն `ջնջել բառը բարեւ, եւ ապա կա տարօրինակ $ @ նշում: ( մասին echo հրաման )
$ @ Ընդլայնում է ցուցադրել յուրաքանչյուր պարամետր, որը մուտքագրվեց սցենարի անունով: Այսպիսով, եթե դուք գրել եք «sh greetme.sh tim» բառը ցուցադրվելու է «Բարեւ»: Եթե դուք գրել եք «greetme.sh tim smith» բառը, ապա կցուցադրվի «բարեւի սիմվոլ» բառերը:
Դա կարող է լինել հաճելի greetme.sh սցենարի համար պարզապես պարզապես բարեւ ասել, օգտագործելով հենց առաջին անունը: Ոչ ոք չի ասում «բարեւ գարի newell», երբ նրանք ինձ հետ են հանդիպում, կարող են ասել, «բարեւ գարի»:
Եկեք փոխենք սցենարը, որպեսզի այն օգտագործի առաջին պարամետրը: Բացեք nano- ում greetme.sh սցենարը `մուտքագրելով հետեւյալը.
նանո greetme.shՓոփոխեք սցենարը, որում ասվում է հետեւյալը.
#! / bin / bash echo "Բարեւ $ 1"Պահեք սցենարը, սեղմելով CTRL եւ O եւ այնուհետեւ ելեք CTRL եւ X- ով սեղմելով:
Ստեղծեք սցենարը, ինչպես ցույց է տրված ստորեւ (փոխեք իմ անունը ձերն է):
sh greetme.sh gary newellԵրբ դուք վարում եք սցենարը, դա ուղղակիորեն ասում է «բարեւ գարի» (կամ հուսով «բարեւ» եւ ինչ էլ որ ձեր անունն է:
$ 1 նշանից հետո, հիմնականում ասվում է echo հրամանին, օգտագործեք առաջին պարամետրը: Եթե փոխարինեք $ 1-ը $ 2-ով, ապա այն կցուցադրի «բարեւ նորեկ» (կամ էլ ձեր ազգանունը):
Ի դեպ, եթե $ 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 "Process ID: $$" echo "---------------------------- --- «echo» - ն եք մտել $ # անվանումով «echo» hello $ @CTRL- ի եւ O- ի համար սեղմել ֆայլը եւ դուրս գալ CTRL- ից եւ X- ից:
Այժմ աշխատեք սցենարը (փոխարինեք ձեր անունով):
sh greetme.shԱյս անգամ սցենարը ներկայացնում է հետեւյալը.
Ֆայլի անունը `greetme.sh Գործընթացը ID: 18595 ------------------------------ Դուք մտել եք 2 անուն hello gary newellՍցենարի առաջին շարքում $ 0- ը ցուցադրում է ձեր գործած սցենարի անունը: Նշենք, որ դա դոլարի զրոյական է եւ ոչ թե դոլար:
Երկրորդ շարքում գտնվող $$ ցուցադրվում է ձեր վազքի սկրիպտի ընթացիկ id: Ինչու է դա օգտակար: Եթե նախապես պլանավորվում եք սցենարով, ապա այն կարող եք չեղյալ համարել, պարզապես սեղմելով CTRL- ը եւ C- ն: Եթե դուք սկրիպտ եք վարում ֆոնի վրա, եւ այն սկսեց looping- ը եւ նույնն անելը, կրկին ու կրկին կամ սկսեցիք վնաս պատճառել ձեր համակարգին, ապա ձեզ հարկավոր էր սպանել այն:
Ֆոնի վրա աշխատող սցենար սպանելու համար հարկավոր է սցենարի գործընթացի id: Միթե դա լավ չէր լինի, եթե սցենարն իր պրոցեսին ID- ն տվեց իր արտադրանքի մաս: ( մասին PS եւ սպանել հրամանները )
Ի վերջո, ես այս թեմայով ավարտեցի, ես ուզում էի քննարկել, թե ուր է արտադրությունը: Ամեն անգամ, երբ սցենարը առաջ է անցել, ներկայումս ցուցադրվում է ցուցադրումը:
Հատկանշական է, որ սցենարի արտադրանքը տպագրվի արտադրանքի ֆայլում: Դա կատարելու համար սցենարը հետեւյալն է.
sh greetme.sh gary> greetme.logՎերոհիշյալ հրամանով> խորհրդանիշը «hello gary» տեքստն է greetme.log կոչվող ֆայլին:
Ամեն անգամ, երբ սցենարը վարում եք> խորհրդանիշով, այն վերագրվում է ելքային ֆայլի բովանդակությանը: Եթե նախընտրում եք կցել ֆայլին, փոխարինեք> հետ >>:
Ամփոփում
Այժմ պետք է կարողանաք գրել տեքստը էկրանին եւ ընդունել ներածման պարամետրերը: