Beginners ուղեցույց դեպի BASH - Ներածման պարամետրեր

Բարի գալուստ 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 կոչվող ֆայլին:

Ամեն անգամ, երբ սցենարը վարում եք> խորհրդանիշով, այն վերագրվում է ելքային ֆայլի բովանդակությանը: Եթե ​​նախընտրում եք կցել ֆայլին, փոխարինեք> հետ >>:

Ամփոփում

Այժմ պետք է կարողանաք գրել տեքստը էկրանին եւ ընդունել ներածման պարամետրերը: