exec - Հրավիրել subprocess (es)
Սինոփսիս
exec ? անջատիչները : arg ? arg ... ?
Նկարագրություն
Այս հրահանգը վերաբերում է իր փաստարկներին, որպես կատարման ենթակա մեկ կամ ավելի ենթաֆշակույթների հստակեցում: Արգումենտները ստացվում են ստանդարտ տողերի տարանջատման ձեւը, որտեղ յուրաքանչյուր arg- ը դառնում է հրամանի մի խոսք, եւ ամեն հստակ հրամանը դառնում է subprocess:
Եթե exec սկսելու նախնական փաստարկները սկսվեն, ապա դրանք դիտարկվում են որպես հրամանի գծի անջատիչներ եւ չեն հանդիսանում գազատարի ճշգրտման մաս: Հետեւյալ անջատիչները ներկայումս աջակցվում են.
- պահուստային ցանց
Պահպանում է գազամուղի արտադրության մեջ հաջորդող նոր գծերը: Սովորաբար կողքից վերահասցեավորումը կջնջվի:
- Դեպի
Նշում է անջատիչների վերջը: Հետեւյալ փաստարկը, որը հետեւում է այս մեկին, կքննարկվի որպես առաջին փաստարկ, նույնիսկ եթե այն սկսվում է a- ից:
Եթե arg (կամ զույգ arg ) - ը ստորեւ նկարագրված ձեւերից մեկն է, ապա այն օգտագործվում է exec- ի կողմից հսկողության ներքո եւ արդյունքի հոսքը subprocess (es): Նման փաստարկները չեն ենթարկվի ենթապայմաններին: « Ֆայլի անուն » ֆայլի ձեւերով, օրինակ, ֆայլի անունը կարող է լինել առանձին փաստարկ `` `<'' կամ նույն միջամտությունից առանց միջամտության տարածքի (այսինքն` `< fileName »):
| |
Խողովակաշարում առանձնացնում հստակ հրամաններ: Նախորդ հրամանի ստանդարտ արտադրանքը կուղղվի հաջորդ հրամանի ստանդարտ մուտքագրմանը:
| &
Խողովակաշարում առանձնացնում հստակ հրամաններ: Նախորդ հրամանի ստանդարտ ելքային եւ ստանդարտ սխալը կուղղվի հաջորդ հրամանի ստանդարտ մուտքագրմանը: Վերահղման այս ձեւը գերադասում է ձեւերը, ինչպիսիք են 2> եւ> &.
< fileName
Ֆայլի անունով ֆայլը բացվում է եւ օգտագործվում որպես խողովակի մեջ առաջին հրամանի համար ստանդարտ ներածություն:
<@ fileId
FileId- ը պետք է լինի բաց ֆայլի նույնացուցիչ, ինչպիսին է նախորդ զանգի բացման արժեքը: Այն օգտագործվում է որպես ստանդարտ ներդրում խողովակաշարում առաջին հրամանատարության համար: FileId- ը պետք է բացվեր ընթերցման համար:
<< արժեքը
Արժեքը փոխանցվում է առաջին հրամանին `որպես ստանդարտ ներածություն:
> fileName
Վերջին հրամանի ստանդարտ արտադրանքը վերահղված է ֆայլի անունով ֆայլի վրա, վերագրանցելով նախորդ բովանդակությունը:
2> fileName
Խողովակի մեջ բոլոր հրամաններից ստանդարտ սխալը վերափոխվում է ֆայլի անունով ֆայլ, վերագրանցելով նախորդ բովանդակությունը:
> & fileName
Երկու ստանդարտ արտադրանքը վերջին հրամաններից եւ ստանդարտ սխալներից բոլոր հրամաններից վերահղված է ֆայլի անունով ֆայլի անուն, վերագրանցելով նախորդ բովանդակությունը:
>> fileName
Վերջին հրամանի ստանդարտ արտադրանքը վերահղված է ֆայլի անունով ֆայլին, որը կցվում է դրա փոխարեն, ոչ թե այն վերագրելով:
2 >> fileName
Խողովակաշարում բոլոր հրամաններից ստանդարտ սխալը վերահղված է ֆայլի անունով ֆայլին, հավելելով դրա փոխարեն, ոչ թե այն վերագրելով:
>> & fileName
Երկու ստանդարտ արտադրանքը վերջին հրամանից եւ ստանդարտ սխալներից բոլոր հրամաններից վերահղված է ֆայլի անունով ֆայլին, որը կցվում է այն, այլ ոչ թե այն վերագրելով:
> @ fileId
FileId- ը պետք է լինի բաց ֆայլի նույնացուցիչ, ինչպիսին է նախորդ զանգի բացման արժեքը: Վերջին հրամանի ստանդարտ արտադրանքը վերափոխվում է fileId ֆայլին, որը պետք է բացվեր գրելու համար:
2> @ fileId
FileId- ը պետք է լինի բաց ֆայլի նույնացուցիչ, ինչպիսին է նախորդ զանգի բացման արժեքը: Խողովակի մեջ բոլոր հրամաններից ստանդարտ սխալը վերափոխվում է fileId- ի ֆայլին: Ֆայլը պետք է բացվեր գրելու համար:
> & @ fileId
FileId- ը պետք է լինի բաց ֆայլի նույնացուցիչ, ինչպիսին է նախորդ զանգի բացման արժեքը: Երկու ստանդարտ արտադրանքը վերջին հրամաններից եւ ստանդարտ սխալներից բոլոր հրամաններից վերահղվում է fileId- ի ֆայլին: Ֆայլը պետք է բացվեր գրելու համար:
Եթե ստանդարտ արտադրանքը չի վերաուղղվել, ապա exec հրամանը վերադարձնում է ստանդարտ արտադրանքը գազատարի վերջին հրամաններից: Եթե խողովակաշարի հրամաններից որեւէ մեկը աննորմալ կերպով դուրս է գալիս կամ սպանվում կամ կասեցվում է, ապա exec- ը կվերադարձնի սխալը եւ սխալի հաղորդագրությունը կներառի գազամուղի արտադրանքը, այնուհետեւ անլարալ դադարեցումները նկարագրող սխալ հաղորդագրություններ: errorCode փոփոխականը պարունակում է լրացուցիչ տեղեկություն, որը տեղի է ունեցել վերջին աննորմալ դադարեցման վերաբերյալ: Եթե հրամաններից որեւէ մեկը գրում է իր ստանդարտ սխալ ֆայլը եւ ստանդարտ սխալը չի վերափոխվում, ապա exec- ը կվերադարձնի սխալ: սխալի հաղորդագրությունը կներառի գազամուղի ստանդարտ արտադրանքը, այնուհետեւ ուղերձներ աննորմալ դադարեցումների մասին (եթե առկա են), որին հաջորդում է ստանդարտ սխալի ելքը:
Եթե արդյունքի կամ սխալ հաղորդագրության վերջին բնույթը նոր գծ է, ապա այդ բնույթը սովորաբար ջնջվում է արդյունքի կամ սխալ հաղորդագրությունից: Սա համապատասխանում է այլ Tcl վերադարձի արժեքներին, որոնք նորմալ չեն ավարտվում: Այնուամենայնիվ, եթե նշանավորվի նշանը , ապա պահվում է նոր գծի պահպանումը:
Եթե ստանդարտ մուտքագրումը վերափոխվում է `` <'' կամ `<< << 'կամ` <@', ապա խողովակի մեջ առաջին հրամանի ստանդարտ մուտքագրումը վերցվում է դիմումի ընթացիկ ստանդարտ մուտքից:
Եթե վերջին վեճը `« & », ապա գազամուղը կկատարվի ֆոնին: Այս դեպքում exec- ի հրամանատարությունը կվերադարձնի ցանկը, որի տարրերն են գազամուղի բոլոր ենթաֆշակույթների գործընթացի նույնացուցիչները: Խողովակի մեջ վերջին հրամաններից ստանդարտ արտադրանքը կստանա դիմումի ստանդարտ արտադրանքը, եթե այն չի վերաուղղվել, եւ խողովակի բոլոր հրամաններից սխալի արդյունքը կուղղվի դիմումի ստանդարտ սխալ ֆայլին, եթե վերահղված չէ:
Յուրաքանչյուր հրամանի առաջին բառը վերցվում է որպես հրամանատարի անուն: tilde- փոխարինումը կատարվում է դրա վրա, եւ եթե արդյունքը պարունակում է սահողներ, ապա PATH շրջակա միջավայրի փոփոխականների դիրեկտորիաները որոնվում են տվյալ անունով գործարկվող: Եթե անունը պարունակում է ծալք, ապա այն պետք է հղում կատարի ընթացիկ տեղեկատուից հասանելի կատարվողին: Ոչ հրամանների փաստարկների վրա չեն կատարվում «գլոբ» ընդլայնում կամ այլ ռոբոտի նման փոխարինումներ:
Portability Issues
Windows (բոլոր տարբերակները)
Ընթերցելուց կամ գրել ա վարդակից, օգտագործելով `` @ fileId 'նշումը, չի աշխատում: 16-դյույմ DOS հավելվածը կարդալուց կախված է 32-բիթանոց ծրագիրը, որն անմիջապես կվերադառնա ֆայլի ավարտին: Երբ դիմումատուի ցանկացած տեսակի գրառվում է վարդակից, տեղեկատվությունը փոխարենը ուղարկվում է մխիթարել, եթե առկա է, կամ վերացվում է:
Tk- ի կոնտակտ տեքստի վիջեթը չի ապահովում իրական չափանիշ IO- ի հնարավորությունները: Tk- ի դեպքում, երբ ստանդարտ մուտքագրումից վերաբաշխում, բոլոր հայտերը կտեսնեն անմիջական ավարտի-ֆայլը. կհրապարակվեն ստանդարտ արտադրանքի կամ ստանդարտ սխալի վերաձեւակերպված տեղեկությունները:
Կամ առաջ կամ հետիոտների սլաքները ընդունվում են որպես ճանապարհային առանձնացնողներ Tcl հրահանգների համար փաստարկների համար: Դիմումը կատարելու ժամանակ դիմումի համար նշված ուղու անունը կարող է պարունակել նաեւ հետիոտների կամ հետիոտների սլաքներ, որպես ճանապարհային առանձնացնողներ: Ուշադրություն դարձրեք, սակայն, որ Windows ծրագրերի մեծամասնությունը ընդունում է փաստարկներ առաջ սղոցներով, ինչպես միայն տարբերակները եւ սահմանափակումները միայն ուղիներում: Ցանկացած փաստարկներ, որում նշվում է, որ առաջադրվել է ուղիների անունը, առաջադրվում է ավտոմատ կերպով, օգտագործելով վերադարձի բնույթը: Եթե փաստարկը պարունակում է շեղումներ, որպես ճանապարհային տարանջատիչ, այն կարող է կամ չի կարող ճանաչվել որպես ճանապարհի անուն, կախված ծրագրից:
Բացի այդ, 16-bit DOS կամ Windows 3.X հավելվածը զանգահարելիս, բոլոր ճանապարհի անունները պետք է օգտագործեն կարճ, գաղտնի, ճանապարհային ձեւաչափը (օրինակ, `` applbakery.default '- ի փոխարեն, `` applba ~ 1.def' ):
Ուղղակի երկու կամ ավելի առաջ կամ հետիոտների սլաքները ուղիղ գծի մեջ են: Օրինակ, c: // Windows- ի / համակարգով (երկու slashes միասին), c- ի արմատային դիրեկտորիաների պարզ կապակցումը կներկայացնի այն համակարգը , որը կոչվում է համակարգչային համակարգում , որը կոչվում է Windows (եւ c: / անտեսվում է) եւ չի համարժեք c: / windows / համակարգին , որը նկարագրում է առկա համակարգչի դիրեկտորը: Ֆայլի միանալու հրամանը պետք է օգտագործվի ուղիների բաղադրիչները միավորելիս :
Windows NT- ում
Երբ դիմում է կատարում, առաջինը որոնում է անունը, ինչպես նշված է: Այնուհետեւ, .com , .exe , եւ .bat- ը, կցվում են նշված անունի վերջում եւ այն որոնում է ավելի երկար անուն: Եթե գրացուցակի անունը նշված չէ որպես հայտի անվանումը, հետեւյալ դիրեկտորիաները ավտոմատ կերպով փնտրվում են, որպեսզի փորձեն գտնել հայտը:
Տնօրինակը, որը Tcl- ի գործարկիչը բեռնված էր:
Ներկայիս գրացուցակը:
Windows NT 32-bit համակարգային տեղեկատու:
Windows NT 16-բիթանոց համակարգիչը:
Windows NT- ի հիմնական տեղեկատուը:
Ուղեցույցում նշված ուղեցույցները:
Դիր եւ պատճենը պատրաստելուց հետո, զանգը պետք է պատրաստի `` cmd.exe / c 'ցանկալի հրամանին:
Windows 95
Երբ դիմում է կատարում, առաջինը որոնում է անունը, ինչպես նշված է: Այնուհետեւ, .com , .exe , եւ .bat- ը, կցվում են նշված անունի վերջում եւ այն որոնում է ավելի երկար անուն: Եթե գրացուցակի անունը նշված չէ որպես հայտի անվանումը, հետեւյալ դիրեկտորիաները ավտոմատ կերպով փնտրվում են, որպեսզի փորձեն գտնել հայտը:
Տնօրինակը, որը Tcl- ի գործարկիչը բեռնված էր:
Ներկայիս գրացուցակը:
Windows 95 համակարգի գրացուցակը:
Windows 95 հիմնական դիրեկտորիան:
Ուղեցույցում նշված ուղեցույցները:
Դիր եւ պատճենը պատրաստելուց հետո, ինչպես հարկն է, հրահանգիչը պետք է նախապատրաստի `` command.com / c 'ցանկալի հրամանին:
16-դյույմանոց DOS հավելվածը կարդացել է ստեղնաշարի մուտքագրումը մխիթարելուց հետո, այնուհետեւ թողնել, ապա հետագայում գործարկել 16-bit DOS- ի հավելվածները կտեսնեն ստանդարտ մուտքագրումը, արդեն փակված: 32-բիթանոց ծրագրերը այս խնդիրը չունեն եւ ճիշտ կգործեն, նույնիսկ 16-bit DOS հավելվածից հետո, կարծում են, որ ստանդարտ մուտքագրումը փակ է: Այս ժամանակահատվածում այս խարդախության համար չգիտենք, թե ինչ է կատարվածը:
Վերաուղղորդումը NUL- ի միջեւ, սարքը եւ 16 բիտ դիմումը միշտ չէ, որ աշխատում է: Երբ վերաբաշխում է NUL- ից, որոշ դիմումներ կարող են կախել, մյուսները կստանան անսահման արտերկիր `` 0x01 '' բայտ, իսկ ոմանք էլ ճիշտ կստանան անմիջապես վերջնական ֆայլ: վարքագիծը, կարծես, կախված է դիմումի մեջ կազմված մի բանից: Երբ վերափոխում է 4K- ից ավելի կամ այնքան NUL- ը , որոշ ծրագրեր կախված կլինեն: Վերոհիշյալ խնդիրները չեն պատահում 32-բիթ ծրագրերի հետ:
Բոլոր DOS 16-բիթ ծրագրերը համաժամանակյա են: Խողովակի 16-բիթանոց DOS- ի բոլոր ստանդարտ մուտքագրումները հավաքվում են ժամանակավոր ֆայլի մեջ. խողովակի մյուս վերջը պետք է փակվի մինչեւ 16-bit DOS- ի կիրառումը սկսվի: Բոլոր ստանդարտ արտադրանքը կամ սխալի 16-բիթանոց DOS հավելվածից խողովակ է հավաքվում ժամանակավոր ֆայլերի մեջ. հայտը պետք է դադարեցվի մինչեւ ժամանակավոր ֆայլերը վերահղված լինեն գազամուղի հաջորդ փուլ: Դա պայմանավորված է Windows 95- ի խափանումների խափանումների իրականացման համար, եւ այն է, թե ինչպես է ստանդարտ Windows 95 DOS- ի վահանակը խողովակների բռնակները:
Որոշ ծրագրեր, ինչպիսիք են command.com- ը , չպետք է իրականացվեն ինտերակտիվ: Ծրագրեր, որոնք ուղղակիորեն մուտք են գործում կոնսոլից պատուհանից, այլ ոչ թե ստանդարտ մուտքագրման եւ գրելու իրենց ստանդարտ արտադրանքից, կարող են ձախողվել, կախել Tcl- ից կամ նույնիսկ կախել համակարգից, եթե նրանց սեփական մխիթարել պատուհանը նրանց համար մատչելի չէ:
Macintosh
Exec հրամանը չի իրականացվում եւ չի գործում Macintosh- ում:
Յունիքս
Exec հրամանը լիովին գործունակ է եւ աշխատում է նկարագրված:
Տես նաեւ
սխալ (n), բաց (n)
Հիմնաբառեր
իրականացնել, խողովակաշար, վերադասավորում, ենթաֆշակում
Կարեւոր է. Օգտագործեք հրամանատարությունը ( % մարդ ), որպեսզի տեսնեք, թե ինչպես է օգտագործվում հրամանը ձեր որոշակի համակարգչում: