Ինչպես գրել BASH- ի համար «Loop- ի համար»

Ինչպես օգտվել BASH- ի «համար» հանգույցով shell- ի սցենարներից

BASH- ը (որը հանդես է գալիս Bourne Again Shell- ի համար) ստրատեգիական լեզու է, որն օգտագործում է Linux- ի եւ UNIX- ի օպերացիոն համակարգերի մեծ մասը:

Դուք կարող եք վազել BASH- ի հրամանները տերմինալային պատուհանի մեջ, մեկը մյուսի հետեւից, կամ կտեսնեք տեքստային ֆայլի հրամանները, որպեսզի պատրաստի վահանակ:

Հատուկ գրառումների մասին մեծ բանը այն է, որ դուք կարող եք կրկին ու կրկին առաջարկել: Օրինակ, պատկերացրեք, որ դուք պետք է համակարգչին օգտագործեք օգտվողին ավելացնեք, թույլտվություն սահմանեք եւ կառավարեք դրանց մեկնարկային միջավայրը: Կարող եք կամ գրել մի կտոր թղթի վրա հրամանները եւ վազել դրանք, եթե դուք ավելացնեք նոր օգտվողներ կամ կարող եք գրել միայն մեկ սցենար եւ ուղղել պարամետրերը այդ սցենարի մեջ:

Սեթերալ լեզուները, ինչպիսիք են BASH- ը, ունեն նմանատիպ ծրագրավորման կառուցվածքներ, որպես այլ լեզուներ: Օրինակ, դուք կարող եք օգտագործել ներմուծման պարամետրերը ` ստեղնաշարի մուտքագրման համար եւ պահեք դրանք որպես փոփոխականներ: Այնուհետեւ կարող եք ստանալ սցենար ` որոշակի գործողություն կատարելու համար, ելնելով ներդրման պարամետրերի արժեքից :

Ցանկացած ծրագրավորման եւ սցենարական լեզվի հիմնական մասը կրկին ու կրկին նույն կոդը գործելու ունակությունն է:

Կոդի կրկնօրինակների մի շարք եղանակներ կան (նաեւ հայտնի են որպես հանգույցներ): Այս ուղեցույցում դուք կցուցադրվի, թե ինչպես պետք է գրել «for» հանգույց:

A loop- ը կրկնում է կոդի մի հատվածի կրկնությունը: Նրանք օգտակար են, որպեսզի հրամանների շարքը կարողանա աշխատել, մինչեւ որոշակի պայմաններ չկատարվեն, որից հետո նրանք կդադարեն:

Այս ուղեցույցում դուք կցուցադրեք BASH- ի սցենարով ներդիրի օգտագործման հինգ եղանակ:

Նախքան սկսելը

Նախքան սկսեք հանգույցների օրինակներ, դուք պետք է բացեք տերմինալային պատուհան եւ հետեւեք հետեւյալ քայլերին.

  1. Մուտքագրեք mkdir սցենարներ ( ավելին իմանալ այստեղ mkdir մասին )
  2. Մուտքագրեք cd սցենարներ (սա փոփոխում է գրացուցակը սցենարներ )
  3. Մուտքագրեք nano examplen.sh (որտեղ n- ն աշխատում է այն օրինակով)
  4. Մուտքագրեք սցենարը
  5. Սեղմեք CTRL + O կոճակը եւ CTRL + X- ը դուրս գալու համար
  6. Գործարկել bash examplen.sh (կրկին, n- ն լինելով օրինակ, որ աշխատում եք)

Ինչպես շրջանցել ցանկով

#! / bin / bash
1 2 3 4 5-ում համարի համար
անել
echo $ համարը
կատարած
ելք 0

«For» կաղապարների օգտագործման BASH ձեւը մի փոքր տարբերվում է այն բանին, որ շատ այլ ծրագրավորում եւ սցենարական լեզուներ «համար» բռունցքներով կարգավորելու համար: Եկեք կոտրենք սցենարը ...

BASH- ի համար «հանգույցի համար բոլորի համար կատարված եւ արված հայտարարությունները կատարվում են մեկ անգամ ցուցակում ընդգրկված յուրաքանչյուր կետի համար:

Վերոնշյալ օրինակում ցուցակը ամեն ինչն է, որը գալիս է բառից հետո (այսինքն, 1 2 3 4 5):

Յուրաքանչյուր անգամ հանգույցը iterates, հաջորդ արժեքը ցուցակում մեջ տեղադրված է փոփոխական նշված հետո «համար» : Վերոնշյալ հանգույցում փոփոխությունը կոչվում է համար :

Էկրանի մասին հայտարարությունը օգտագործվում է էկրանին տեղեկատվություն ցուցադրելու համար:

Հետեւաբար, այս օրինակը վերցնում է 1-ից 5-ի համարները եւ դրանք մեկ-մեկ է էկրանին.

Ինչպես հանգեցնել մեկնարկի եւ վերջի կետի միջեւ

Վերոհիշյալ օրինակով առաջացած խնդիրն այն է, որ եթե ուզում եք ավելի մեծ ցուցակ մշակել (ասենք 1-ից 500-ը), ապա տարիքը պետք է գրի բոլոր թվերը առաջին հերթին:

Սա բերում է մեզ երկրորդ օրինակին, որը ցույց է տալիս, թե ինչպես պետք է նշեք մեկնարկային եւ վերջնական կետը.

#! / bin / bash
համարում {1..10} համար
անել
echo "$ number"
կատարած
ելք 0

Կանոնները հիմնականում նույնն են: «Մեջ» բառից հետո արժեքները կազմում են ցուցակը վերափոխելու համար, եւ ցուցակում յուրաքանչյուր արժեքը տեղադրվում է փոփոխականում (այսինքն, համարը), եւ ամեն անգամ կատարվում է հանգույցը, կատարվում է կատարվածի եւ կատարվածի միջեւ կատարված հայտարարությունները:

Հիմնական տարբերությունն այն է, որ ցանկը ձեւավորվում է: Գանգրացնող փակագծերը {} հիմնականում նշանակում են մի շարք եւ ընդգրկույթը, այս դեպքում, 1-ից 10 է (երկու հանգույցները առանձնացնում են մի շարք սկիզբը եւ վերջը):

Այս օրինակը, հետեւաբար, գործում է 1-ից 10-ն ընկած թվերով եւ համարը թվայնացնում է հետեւյալը.

Միեւնույն հանգույցը կարող էր գրվել այսպես, առաջին տիպի նույնականությամբ:

համարի համարը 1 2 3 4 5 6 7 8 9 10

Ինչպես անցնել համարները Range- ում

Նախորդ օրինակը ցույց տվեց, թե ինչպես պետք է հանգեցնել մեկնարկի եւ վերջնական կետի միջեւ, այնպես որ հիմա մենք նայում ենք, թե ինչպես պետք է բաց թողնել թվերը:

Պատկերացրեք, ուզում եք հանգույցը 0-ից 100-ի միջեւ, բայց միայն յուրաքանչյուր տասներորդ թիվը: Հետեւյալ սցենարը ցույց է տալիս, թե ինչպես դա անել:

#! / bin / bash
համարում {0..100..10} համար
անել
echo "$ number"
կատարած
ելք 0

Կանոնները հիմնականում նույնն են: Կա ցուցակ, փոփոխական եւ մի շարք հայտարարություններ, որոնք պետք է կատարվեն անել եւ արել : Ցանկը այս անգամ կարծես նման է. {0..100..10}:

Առաջին համարը `0, իսկ վերջի համարը` 100: Երրորդ համարը (10) այն ցուցակում է, որը այն կանցնի:

Հետեւաբար, վերը նշված օրինակը ցույց է տալիս հետեւյալ արդյունքները.

Ավելի ավանդական փնտրում է հանգույցի համար

Հաշվարկների համար BASH- ի ձեւը փոքր-ինչ տարօրինակ է `համեմատած այլ ծրագրավորման լեզուների հետ:

Այնուամենայնիվ, կարող եք գրել համար հանգույց նույն ձեւով C- ի ծրագրավորման լեզվով, ինչպես այսպես.

#! / bin / bash
համար ((թիվ = 1, համարը <100, համարը ++))
{
եթե (($ number% 5 == 0))
ապա
echo "$ number- ը բաժանված է 5-ով"
fi
}
ելք 0

Հանգույցը սկսվում է փոփոխական համարը 1-ին (համար = 1 ): Անկյունը կպահպանի itarating, մինչդեռ մի շարք արժեքը 100-ից պակ ( թիվ 100 ) է: Թվային փոփոխությունների արժեքը, յուրաքանչյուր կրկնությունից հետո ( թիվ ++ ) 1-ին ավելացնելով:

Ցանկապատերի միջեւ ամեն ինչ կատարվում է հանգույցի յուրաքանչյուր կրկեսի միջոցով:

Կտրուկի միջեւ բիթը ստուգում է մի շարք արժեքը, բաժանում է 5-ը եւ համեմատում մնացածը 0-ն: Եթե մնացորդը 0 է, ապա համարը բաժանվում է 5-ից եւ դրսեւորվում է էկրանին:

Օրինակ:

Եթե ​​ցանկանում եք փոխել կրկեսի քայլի չափը, կարող եք փոփոխել թիվ ++ բաժինը ` համարը = համարը + 2 , համարը = համարը + 5 , կամ համարը = թիվ + 10 եւ այլն:

Դա կարող է հետագայում նվազեցնել թիվը + = 2 կամ համարը, + = 5 :

Գործնական օրինակ

For loops- ը կարող է ավելին անել, քան թվերի կրկնվող ցուցակները: Դուք կարող եք իրականում օգտագործել մյուս հրահանգների արտադրանքը որպես ցուցակ:

Հետեւյալ օրինակը ցույց է տալիս, թե ինչպես փոխարկել աուդիո ֆայլերը MP3- ից WAV- ը :

#! / bin / bash

Այս օրինակում նշված ցանկը ընթացիկ թղթապանակում .MP3 ընդլայնման հետ կապված յուրաքանչյուր ֆայլն է եւ փոփոխականը ֆայլ է :

The mpg հրամանը փոխարկում MP3 ֆայլը WAV. Այնուամենայնիվ, նախեւառաջ պետք է տեղադրեք այն ձեր փաթեթային մենեջերի միջոցով: