Ինչպես կարդալ ենթահաշիվները, որոնք առաջադրվելու են զուգահեռաբար
Shell- ը Linux համակարգում հրամանների մուտք գործելու հիմնական ինտերֆեյս է: Դրանով դուք կարող եք ուղղակիորեն մուտք գործել հրաման կամ նշել ֆայլ (սցենար), որը պարունակում է հրահանգների հաջորդականությունը: Shells կազմակերպված են հիերարխիայում, եւ ցանկացած shell կարող է ստեղծել նոր shell. Նոր շերտը համարվում է երեխայի գործընթաց, որը ստեղծում է ծնողական վահանակի ենթահեղինակ:
Լռելյայն, ենթահեղինակը կախված է իր ծնողից, այն իմաստով, որ եթե ծնողական գործընթացը դադարում է, ապա ենթահողը դադարում է: Ցանկացած արտադրանք ենթահանձնաժողովից փոխանցվում է ծնողի վահանակին:
Ինչպես ստեղծել ենթահաշիվ
Բաշ քառակուսի սցենարով դուք ստեղծում եք ենթաբաժին, օգտագործելով պարամետրերի նշան:
#. / bin / bash echo "Մինչեւ subshell սկսելու համար" (count = 1 իսկ [$ count -le 99] echo "$ count" sleep 1 ((count ++)) արել) echo "ավարտված"Օրինակում, մինչդեռ հանգույցը կցվում է պարունակությամբ, ինչը հանգեցնում է այն կատարման մեջ, որը պարունակում է սցենարի ֆայլը:
Անցում կատարելով ենթահամակարգում
Եթե դուք չեք նշում, որ ենթահանձնաժողովը պետք է կատարվի ֆոնին, ծնողական սավանն ակնկալում է ենթավերնագրի ավարտը մինչեւ սցենարի մնացած մասը շարունակելու համար: Այնուամենայնիվ, եթե դուք ուզում եք վազել ենթահեճերը զուգահեռաբար, ապա դրանք անցնում եք ֆոնին, որը կատարվում է ստորեւ արտահայտության հաջորդականությամբ արտահայտված բնույթով:
#. / bin / bash echo "Մինչեւ subshell սկսելու համար" (count = 1, իսկ [$ count -le 99] echo "$ count" sleep 1 ((count ++))) եւ echo "ավարտված"Միաժամանակ զուգահեռաբար վարելով բազմաթիվ ենթահաշիվներ
Եթե դուք ստեղծել եք մի քանի ենթահաշիվներ, որպես ֆոնային գործընթացներ , կարող եք զուգահեռ աշխատանքներ իրականացնել: Սովորաբար, օպերացիոն համակարգը օգտագործում է տարբեր պրոցեսորներ կամ միջուկներ յուրաքանչյուր գործընթացի եւ ենթաֆշակման համար, ենթադրելով, որ առկա են առնվազն շատ պրոցեսորներ կամ միջուկներ, քանի որ առկա են գործընթացներ: Հակառակ դեպքում խնդիրները հանձնվում են նույն պրոցեսորներին կամ միջուկներին: Այդ դեպքում պրոցեսորը կամ միջուկը շարունակաբար անցում է կատարում հանձնարարված խնդիրների միջեւ, մինչեւ խնդիրները ավարտվեն: Հաջորդ օրինակն ունի երկու subprocesses: Առաջինը հաշվարկվում է 1-ից 99-ով, իսկ երկրորդը `1000-ից մինչեւ 1099:
#. / bin / bash echo «Նախքան subshell սկսելու համար» (count = 1, իսկ [$ count -le 99] - echo «$ count» քուն 1 ((count ++)) կատարված) & (count = 1000 while [$ count -le 1099] անել echo "$ count" sleep 1 ((count ++))) եւ echo "Ավարտված"Օգտագործեք սպասման հայտարարությունը `ծնողական գործընթացին ենթադրելու համար, ենթադրվող գործընթացների ավարտը սպասելուց առաջ, մինչեւ սցենարի մնացած մասը անցնելը:
#. / bin / bash echo «Նախքան subshell սկսելու համար» (count = 1, իսկ [$ count -le 99] - echo «$ count» քուն 1 ((count ++)) կատարված) & (count = 1000 while [$ count -le 1099] do echo "$ count" sleep 1 ((count ++)) արեց) եւ սպասել echo "Finished"Օգտագործում է ենթահողեր
Բաժանորդները օգտակար են, երբ հրամանները պետք է կատարվեն որոշակի միջավայրում կամ գրացուցակում: Եթե յուրաքանչյուր հրամանատարք կատարվի այլ ենթախմբում, վտանգ չկա, որ փոփոխական պարամետրերը խառնվելու են: Վերջում, պարամետրերը եւ ընթացիկ գրացուցակը կարիք չունեն վերականգնել, քանի որ ծնողական գործընթացի միջավայրը չի ազդում իր subprocesses- ից:
Ենթաբաժինները կարող են օգտագործվել ֆունկցիայի սահմաններում, որպեսզի դրանք կարողանան կատարել տարբեր պարամետրերով բազմակի անգամ: