Exec - Linux Command - Unix каманднага

Exec - Invoke подпроцесса (а)

канспект

EXEC? перамыкачы? Arg? Арг ...?

апісанне

Гэтая каманда апрацоўвае аргументы на спецыфікацыі аднаго або некалькіх подпроцессов для выканання. Довады прымаюць форму стандартнага трубаправода абалонкі , дзе кожны аргумент становіцца адным словам каманды, і кожная асобная каманда становіцца подпроцесса.

Калі пачатковыя аргументы EXEC пачаць з - то яны разглядаюцца ў якасці параметраў каманднага радка і не з'яўляюцца часткай спецыфікацыі трубаправода. Наступныя параметры ў цяперашні час падтрымліваюцца:

-keepnewline

Захоўвае завяршальную радок у выхадзе трубаправода. Звычайна завяршальны сімвал новага радка будуць выдаленыя.

-

Адзначае канец перамыкачоў. Аргумент наступны за гэтым, будзе разглядацца ў якасці першага Арг , нават калі ён пачынаецца з -.

Калі аргумент (або пар Arg «ы) мае адну з формаў , апісаных ніжэй , а затым яна выкарыстоўваецца Exec для кіравання патокам ўводу і вываду паміж подпроцессом (а). Такія аргументы не будуць перададзеныя подпроцесса (а). У формах , такіх як `` <імя_файла «» імя_файла можа быць альбо ў выглядзе асобнага аргументу ад `` < «» ці ў тым жа аргументу без прамежкавага прасторы (г.зн. `` <імя_файла «»).

|

Падзяляе розныя каманды ў канвееры. Стандартны вывад папярэдняй каманды будзе па трубах у стандартны ўвод наступнай каманды.

| &

Падзяляе розныя каманды ў канвееры. І стандартны вывад і стандартная памылка папярэдняй каманды будуць па трубах у стандартны ўвод наступнай каманды. Гэтая форма перанакіравання перавызначаем формы, такія як 2> і> &.

<імя_файла

Файл з імем FileName адкрыты і выкарыстоўваецца ў якасці стандартнага ўводу для першай каманды ў трубаправодзе.

<@ FILEID

FILEID павінен быць ідэнтыфікатар адкрытага файла, напрыклад , у якасці вяртаецца значэння з папярэдняга выкліку , каб адкрыць. Ён выкарыстоўваецца ў якасці стандартнага ўводу для першай каманды ў трубаправодзе. FILEID павінен быць адкрыты для чытання.

<< значэнне

Значэнне перадаецца ў першай камандзе ў якасці стандартнага ўводу.

> імя_файла

Стандартны выхад з апошніх камандаў перанакіроўваецца ў файл з імем файла, перапісаўшы яго папярэдняе змесціва.

2> імя_файла

Стандартная памылка з усіх каманд у канвееры перанакіроўваецца ў файл з імем файла, перапісаўшы яго папярэдняе змесціва.

> & Імя_файла

І стандартны вывад апошняй каманды і стандартная памылка з усіх каманд будуць перанакіраваныя ў файл з імем файла, перапісаўшы яго папярэдняе змесціва.

>> імя_файла

Стандартны выхад з апошніх камандаў перанакіроўваецца ў файл з імем файла, даданне да яго , а не перазапісваць яе.

2 >> імя_файла

Стандартная памылка з усіх каманд у канвееры перанакіроўваецца ў файл з імем файла, даданне да яго , а не перазапісваць яе.

>> & імя_файла

І стандартны вывад апошняй каманды і стандартная памылка з усіх каманд будуць перанакіраваныя ў файл з імем файла, даданне да яго , а не перазапісваць яе.

> @ FILEID

FILEID павінен быць ідэнтыфікатар адкрытага файла, напрыклад , у якасці вяртаецца значэння з папярэдняга выкліку , каб адкрыць. Стандартны выхад з апошніх камандаў перанакіроўваецца ў файл FILEID «s, які павінен быць адкрыты для запісу.

2> @ FILEID

FILEID павінен быць ідэнтыфікатар адкрытага файла, напрыклад , у якасці вяртаецца значэння з папярэдняга выкліку , каб адкрыць. Стандартная памылка з усіх каманд у канвееры перанакіроўваецца ў файл FILEID «s. Файл павінен быць адкрыты для запісу.

> & @ FILEID

FILEID павінен быць ідэнтыфікатар адкрытага файла, напрыклад , у якасці вяртаецца значэння з папярэдняга выкліку , каб адкрыць. І стандартны вывад апошняй каманды і стандартная памылка з усіх каманд будуць перанакіраваныя ў файл FILEID «s. Файл павінен быць адкрыты для запісу.

Калі стандартны вывад не быў перанакіраваны , то каманда ехеса вяртае стандартны вывад апошняй каманды ў канвееры. Калі які - небудзь з каманд у выхадзе трубаправода няправільна або забіваюць , або прыпынена, то Exec вяртае памылку і паведамленне пра памылку будзе ўключаць у сябе выхад трубаправода з наступным паведамленняў пра памылкі , якія апісваюць ненармальных канчаткаў; пераменная ERRORCODE будзе ўтрымліваць дадатковую інфармацыю аб апошнім аварыйным завяршэнні сутыкнуліся. Калі які - небудзь з камандаў запісвае ў стандартны файл памылак і стандартная памылка не перанакіраваны, то Exec вяртае памылку; паведамленне пра памылку будзе ўключаць у сябе стандартны вывад трубаправода, а затым паведамленні аб няштатных завяршэнняў (калі такія маюцца), а затым стандартны вывад памылак.

Калі апошні сімвал выніку ці паведамленні пра памылку з'яўляецца сімвал новага радка, то гэты сімвал звычайна выдаляецца з выніку або паведамленне пра памылку. Гэта ўзгадняецца з іншымі вяртаецца значэння Tcl, якія звычайна не заканчваюцца сімваламі новага радка. Аднак, калі -keepnewline зададзены , то завяршальны сімвал новага радка захоўваецца.

Калі стандартны ўвод ня перанакіраваны з `` < «» або `` << «» або `` <@ «», то стандартны ўвод для першай каманды ў трубаправодзе бярэцца з бягучага стандартнага ўводу прыкладання.

Калі апошні аргумент з'яўляецца `` & «» , то трубаправод будзе выконвацца ў фонавым рэжыме. У гэтым выпадку ехес каманда вяртае спіс, элементы якога з'яўляюцца ідэнтыфікатары працэсаў для ўсіх подпроцессов ў трубаправодзе. Стандартны вывад апошняй каманды ў канвееры пойдзе на стандартны вывад праграмы, калі ён не быў перанакіраваны, і памылковую выснову з усіх каманд у канвееры будзе ісці ў стандартны файл памылак прыкладання, калі не ў спецслужбы.

Першае слова ў кожнай камандзе ўспрымаецца як імя каманды; Тыльда-падстаноўка выконваецца на ім, і калі вынік не ўтрымлівае касой рысы, то каталогі ў зменнай PATH асяроддзя шукаюцца выкананага файла з зададзеным імем. Калі імя ўтрымлівае касую рысу, то ён павінен звярнуцца да выкананага дасягальных з бягучага каталога. Няма `` «» пашырэння Глобы або іншыя оболочечные замены не выконваецца на аргументах каманды.

пераноснасць пытанні

Вокны (усе версіі)

Чытанне або запіс у сокет, выкарыстоўваючы `` @ «» FILEID абазначэння, не працуе. Пры чытанні з сокета, 16-разрадны DOS прыкладанне будзе вісець і 32-разрадныя прыкладанні будуць неадкладна вярнуцца з адслужылі файла. Калі любы тып прыкладання, піша ў сокет, інфармацыя, а не на кансоль, калі адзін прысутнічае, або адкідаецца.

Кансольнага тэкставага віджэту Tk не забяспечвае рэальнага стандартныя магчымасці ўводу-высновы. Пад Tk, пры перанакіраванні са стандартнага ўводу, усё прыкладанні будуць бачыць неадкладны канец-з-файла; інфармацыя перанакіроўваецца на стандартны вывад або стандартную памылку будзе адкінутая.

Альбо наперад або назад слэш прымаюцца ў якасці падзельнікаў шляху для аргументаў каманды Tcl. Пры выкананні прыкладной праграмы, назва шлях, зарэгістраваны для прыкладання можа таксама ўтрымліваць наперад або назад слэш як падзельнікі шляхоў. Майце на ўвазе, аднак, што большасць прыкладанняў Windows, прымаць аргументы з слэш толькі ў якасці опцыі падзельнікаў і ўжыць зваротны слэш толькі ў дарозе. Любыя аргументы прыкладання, якія вызначаюць імя шляху з касой рысы не будуць аўтаматычна канвертаваны выкарыстоўваць сімвал ўжыць зваротны слэш. Калі аргумент ўтрымлівае касую рысу як падзельнік шляху, ён можа ці не можа быць прызнаны ў якасці імя шляху, у залежнасці ад праграмы.

Акрамя таго, пры выкліку 16-разраднай DOS або Windows, 3.X прыкладання, усе імёны шляхоў павінны выкарыстоўваць кароткія, загадкавыя, фармат шляху (напрыклад, з дапамогай `` applba ~ 1.DEF «» замест `` applbakery.default «» ).

Два ці больш наперад або назад слэш ў радку у шляху, звярніцеся да сеткавага шляху. Напрыклад, простае аб'яднанне каранёвай дырэкторыі C: / с падкаталогу / акна / сістэмы дасць C: // Windows / сістэма (дзве касыя рысы разам), якая ставіцца да кропкі мантавання завецца сістэмай на машыне пад назвай акназ: / ігнаруецца), і не з'яўляецца эквівалентам C: / Windows / сістэмы, якая апісвае каталог на бягучым кампутары. Камандны файл далучыцца варта выкарыстоўваць для канкатэнацыі кампаненты шляху.

Windows NT

Пры спробе выканання прыкладання, Exec спачатку шукае імя , як гэта было паказана. Затым, у парадку, .com, .exe, .bat і дадаюцца да канца названага імя і ён шукае больш доўгі назоў. Калі імя каталога не было пазначана як частка імя прыкладання, наступныя каталогі аўтаматычна шукаецца ў парадку, пры спробе знайсці прымяненне:

Каталог, з якога быў загружаны выкананы Tcl.
Бягучы каталог.
Windows NT 32-разрадны сістэмны каталог.
Windows NT 16-разрадны сістэмны каталог.
Хатні каталог Windows NT.
Каталогі, пералічаныя ў дарозе.

Для таго , каб выканаць убудаваныя каманды абалонкі , як каталог і копія, якая выклікае бок павінна папярэднічаць `` cmd.exe / с «» на патрэбную каманду.

Windows 95

Пры спробе выканання прыкладання, Exec спачатку шукае імя , як гэта было паказана. Затым, у парадку, .com, .exe, .bat і дадаюцца да канца названага імя і ён шукае больш доўгі назоў. Калі імя каталога не было пазначана як частка імя прыкладання, наступныя каталогі аўтаматычна шукаецца ў парадку, пры спробе знайсці прымяненне:

Каталог, з якога быў загружаны выкананы Tcl.
Бягучы каталог.
Windows 95 сістэма каталогаў.
Windows 95 хатні каталог.
Каталогі, пералічаныя ў дарозе.

Для таго , каб выканаць убудаваныя каманды абалонкі , як каталог і копія, якая выклікае бок павінна папярэднічаць `` command.com / с «» на патрэбную каманду.

Пасля таго, як 16-разраднае прыкладанне DOS прачытаў стандартны ўвод з кансолі, а затым кінуць паліць, усе пасля запускаць 16-бітныя DOS прыкладання будуць бачыць стандартны ўвод як ужо зачынены. 32-разрадныя прыкладання не маюць гэтай праблемы і будзе працаваць правільна, нават пасля таго, як 16-разрадныя DOS прыкладанне лічыць, што стандартны ўвод зачынены. Там няма ніякага вядомага рашэння гэтай памылкі ў гэты час.

Перанакіраванне паміж NUL: прылада і 16-разрадныя прыкладання не заўсёды працуе. Пры перанакіраванні ад NUL: некаторыя праграмы могуць завісаць, а іншыя будуць атрымліваць бясконцы паток `` байт 0x01 «», і некаторыя з іх будуць на самай справе правільна атрымаць неадкладны канец-з-файла; паводзіны, здаецца, залежыць ад чагосьці, складзены ў самым дадатку. Пры перанакіраванні больш , чым 4K або так NUL: некаторыя прыкладання будзе вісець. Вышэйпаказаныя праблемы не адбываюцца з 32-бітнымі праграмамі.

Усе DOS 16-разрадныя прыкладанні запускаюцца сінхронна. Усе стандартныя уваходнай з трубы да 16-бітнага DOS прыкладання збіраюцца ў часовы файл; Другі канец трубы павінен быць зачынены да таго, як 16-бітнае прыкладанне DOS пачынае выкананне. Усе стандартны вывад або памылка з 16-бітнага DOS прыкладання да трубы збіраюць у часовыя файлы; дадатак павінен заканчвацца да часовыя файлы перанакіроўваюцца да наступнага этапу трубаправода. Гэта звязана з абыходным шляхам для Windows, 95 памылкі ў рэалізацыі труб, і як стандартная для Windows 95 DOS абалонка апрацоўвае сама трубы.

Пэўныя праграмы, такія як command.com, не павінны выконвацца ў інтэрактыўным рэжыме . Прыкладання, прамы доступ у акно кансолі, а не чытанне з іх стандартнага ўводу і запісы іх стандартны вывад можа не спрацаваць, павесіць Tcl, ці нават павесіць сістэму, калі іх ўласнае акно прыватнай кансолі не даступныя для іх.

Макінтош

Каманда ехес не рэалізаваная і не існуе ў Macintosh.

юнікс

Каманда ехеса цалкам функцыянальная і працуе , як апісана.

Глядзіце таксама

Памылка (п), адкрыты (п)

ключавыя словы

выканаць, трубаправод, перанакіраванне подпроцесс

Важна: Выкарыстоўвайце каманду чалавека (%) чалавек , каб паглядзець , як каманда выкарыстоўваецца на вашым канкрэтным кампутары.