Exec - Linux Command - Unix հրամանատարությունը

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)

Հիմնաբառեր

իրականացնել, խողովակաշար, վերադասավորում, ենթաֆշակում

Կարեւոր է. Օգտագործեք հրամանատարությունը ( % մարդ ), որպեսզի տեսնեք, թե ինչպես է օգտագործվում հրամանը ձեր որոշակի համակարգչում: