Exec - Linux Command - Unix Command

exec - Invoke subprocess (es)

Sinopsis

exec ? switch ? arg ? arg ... ?

Gambaran

Dhawuh iki ngrujuk marang argumen kasebut minangka spesifikasi saka siji utawa luwih subprocesses supaya bisa dieksekusi. Argumentasi kasebut arupa pipa cangkang standar sing saben arg dadi siji tembung perintah, lan saben perintah sing béda dadi subprocess.

Yen argumen dhisikan diwiwiti kanthi - banjur diolah minangka switch baris-baris lan ora dadi bagian saka spesifikasi pipa. Suis sak ngisor iki saiki didhukung:

-keepnewline

Nahan baris anyar ing prodhuksi pipa. Biasane garis anyar mburine bakal dibusak.

-

Tandha mburi switch. Argumentasi ing ngisor iki bakal dianggep minangka arg pertama sanajan diwiwiti kanthi - .

Yen arg (utawa pasangan arg ) nduweni salah sawijining wangun sing dijelasake ing ngisor iki banjur digunakake dening exec kanggo ngontrol aliran input lan output antarane subprocess (es). Argumentasi kuwi ora bakal dilalekake ing subprocess (es). Ing formulir kayata `` < fileName '' fileName bisa uga ana ing argumenta sing kapisah saka `'<' 'utawa ing argumentasi sing padha karo ora ana ruang intervensi ( ie` `< fileName ' ').

Deleng uga

Pisahake perintah sing beda ing pipo. Output standar saka printah sadurunge bakal diselipake ing input standar saka perintah sabanjure.

|

Pisahake perintah sing beda ing pipo. Loro standar output lan kesalahan standar saka printah sadurunge bakal piped menyang input standar saka printah sabanjure. Bentuk redireksi iki ngemot formulir kayata 2> lan> &.

< fileName

Berkas sing jenenge fileName dibukak lan digunakake minangka input standar kanggo perintah pertama ing pipa.

<@ fileId

FileId kudu dadi pengenal kanggo file sing mbukak, kayata angka bali saka panggilan sadurunge kanggo mbukak . Digunakake minangka input standar kanggo perintah pisanan ing pipa. FileId kudu dibukak kanggo maca.

<< nilai

Nilai dituju ing printah pisanan minangka input standar.

> fileName

Output standar saka printah pungkasan ditransfer menyang file sing dijenengi fileName , nimpa isi sadurungé.

2> fileName

Kesalahan standar saka kabeh perintah ing pipa diarahake menyang file sing dijenengi fileName , nimpa isi sadurungé.

> & fileName

Loro standar output saka perintah pungkasan lan kesalahan standar saka kabeh perintah diarahake menyang file sing dijenengi fileName , nimpa isi sadurungé.

>> fileName

Output standar saka printah pungkasan ditranskripsikan menyang file sing dijenengi fileName , appending dadi tinimbang nimpa .

2 >> fileName

Kesalahan standar saka kabeh perintah ing pipo bakal diarahake menyang file sing dijenengi fileName , ditambah karo tulisan kasebut tinimbang nimpa .

>> & fileName

Loro standar output saka perintah pungkasan lan kesalahan standar saka kabeh printah sing diarahake menyang file sing dijenengi fileName , appending menyang tinimbang nimpal .

> @fileId

FileId kudu dadi pengenal kanggo file sing mbukak, kayata angka bali saka panggilan sadurunge kanggo mbukak . Output standar saka printah pungkasan dialihake menyang file fileId , sing kudu dibukak kanggo nulis.

2> @fileId

FileId kudu dadi pengenal kanggo file sing mbukak, kayata angka bali saka panggilan sadurunge kanggo mbukak . Kesalahan standar saka kabeh perintah ing pipa bakal dialihake menyang file fileId . Berkas wis dibukak kanggo nulis.

> & @ fileId

FileId kudu dadi pengenal kanggo file sing mbukak, kayata angka bali saka panggilan sadurunge kanggo mbukak . Loro standar output saka perintah pungkasan lan kesalahan standar saka kabeh perintah diarahake menyang file fileId . Berkas wis dibukak kanggo nulis.

Yen output standar durung dialihake banjur printah eksekusi ngasilake output standar saka perintah pungkasan ing pipa. Yen salah sijine perintah ing pipa metu ora normal utawa dipateni utawa dilereni, banjur exec bakal ngasilake kesalahan lan pesen kesalahan bakal nyakup output pipa sing diikuti karo pesen kesalahan sing njlentrehake terminasi abnormal; Variabel errorCode bakal ngandhut informasi tambahan bab pungkasan abnormal terminasi ditangani. Yen salah sawijining perintah kasebut nyathet file kesalahan standar lan kesalahan standar ora dialihake, banjur exec bakal ngasilake kesalahan; Pesen kesalahan bakal nyakup output standar pipa, disusul dening pesen babagan terminasi abnormal (yen ana), diikuti karo output kesalahan standar.

Yen karakter pungkasan saka asil utawa pesen kesalahan minangka garis anyar, karakter kasebut biasane dibusak saka pesen asil utawa kesalahan. Iki cocog karo nilai bali Tcl, sing ora biasane diakhiri karo garis anyar. Nanging, yen -keepnewline diwenehake banjur baris anyar mburine ditahan.

Yen input standar ora dialihake karo `` <'' utawa `'<<' 'utawa`' <@ '', banjur input standar kanggo perintah pisanan ing pipa dijupuk saka input standar saiki aplikasi.

Yen arg pungkasan `` & '' banjur pipa bakal kaleksanan ing latar mburi. Ing kasus iki, perintah exec bakal ngasilake dhaptar sing unsur dadi proses pengenal kanggo kabeh subproses ing pipa. Output standar saka printah pungkasan ing pipa bakal pindhah menyang output standar aplikasi yen durung dialihake, lan output kesalahan saka kabeh perintah ing pipa bakal menyang file kesalahan standar aplikasi kajaba redirected.

Tembung pisanan ing saben printah dijupuk minangka jeneng printah; Substitusi tilde ditindakake, lan yen asil ora ana garis miring, banjur direktori ing variabel lingkungan PATH digoleki dienggo mawa jeneng kasebut. Yen jeneng ngemot garis miring, sampeyan kudu ngrujuk menyang eksekusi sing bisa diakses saka direktori saiki. Ora ana expansion glob utawa "substitutions" kaya shell sing dilakokaké ing argumen kasebut.

Masalah Portabel

Windows (kabeh versi)

Nulis utawa nulis menyang soket, kanthi nggunakake notasi `` @fileId ', ora bisa digunakake. Nalika maca saka soket, aplikasi DOS 16-bit bakal digantung lan aplikasi 32-bit bakal bali langsung kanthi file pungkasan. Nalika salah siji jinis aplikasi nyerat menyang soket, informasi kasebut dikirim menyang console, yen ana, utawa dibuwang.

Widget teks konsol Tk ora nyedhiyakake kemampuan nyata IO standar. Ing Tk, nalika mindhahake saka input standar, kabeh aplikasi bakal bisa ndeleng file langsung; informasi sing bakal dikirim menyang standar output utawa kesalahan standar bakal dibuang.

Loro-lorone maju utawa mundur ditampa minangka pemisah path kanggo argumen kanggo Tcl perintah. Nalika ngeksekusi aplikasi, jeneng path sing ditemtokake kanggo aplikasi kasebut uga kasedhiya slash maju utawa mundur minangka path separator. Elinga, manawa aplikasi Windows sing paling akeh nampa argumen karo slash maju mung minangka pilihan delimiters lan backslashes mung ing dalan. Saben argumen menyang aplikasi sing nemtokake jeneng path karo garis miring maju ora bakal diowahi sacara otomatis kanggo nggunakake karakter backslash. Yen argumen ngandhut slash maju minangka path separator, bisa utawa ora bisa dikenali minangka jeneng path, gumantung saka program kasebut.

Tambahan, nalika nelpon aplikasi DOS utawa Windows 3.X 16-bit, kabeh jeneng path kudu nggunakake format path short, cryptic, (path, nganggo `applba ~ 1.def ') tinimbang` `applbakery.default' ' ).

Loro utawa luwih slashes maju utawa mundur ing baris ing path nuduhake dalan jaringan. Contone, kompatibilitas prasaja direktori root c: / karo subdirectory / windows / system bakal ngasilake c: // windows / system (loro slashes bebarengan), kang nuduhake titik mount sing disebut sistem ing mesin kasebut windows (lan c: / diabaikan), lan ora padha karo c: / windows / system , sing nggambarake direktori ing komputer saiki. File sing digabung perintah kudu digunakake kanggo nggratisi komponen path.

Windows NT

Nalika nyoba nglakokake aplikasi, exec nemtokake luwih dhisik jeneng kasebut minangka kasebut. Banjur, supaya, .com , .exe , lan .bat ditambahake ing pungkasan jeneng kasebut lan nggoleki jeneng maneh. Yen jeneng direktori ora kasebut minangka bagéan saka jeneng aplikasi, direktori ing ngisor iki kanthi otomatis digoleki nalika nyoba nemokake aplikasi:

Direktori saka eksekusi Tcl dimuat.
Direktori saiki.
Direktori sistem Windows NT 32-bit.
Direktori sistem Windows NT 16-bit.
Direktori ngarep Windows NT.
Direktori sing kadhaptar ing path.

Kanggo nglakokaké printah cangkang sing digawe minangka dir lan nyalin , panelpon kudu nyiapake `` cmd.exe / c '' menyang printah sing dikepengini.

Windows 95

Nalika nyoba nglakokake aplikasi, exec nemtokake luwih dhisik jeneng kasebut minangka kasebut. Banjur, supaya, .com , .exe , lan .bat ditambahake ing pungkasan jeneng kasebut lan nggoleki jeneng maneh. Yen jeneng direktori ora kasebut minangka bagéan saka jeneng aplikasi, direktori ing ngisor iki kanthi otomatis digoleki nalika nyoba nemokake aplikasi:

Direktori saka eksekusi Tcl dimuat.
Direktori saiki.
Direktori sistem Windows 95.
Direktori ngarep Windows 95.
Direktori sing kadhaptar ing path.

Kanggo nglakokaké printah cangkang sing digawe kaya dir lan nyalin , panelpon kudu nyisipaké `` command.com / c '' menyang printah sing dikepengini.

Sawise aplikasi DOS 16-bit wis maca input standar saka console lan banjur metu, kabeh sing banjur mbukak aplikasi DOS 16-bit bakal weruh input standar minangka wis ditutup. Aplikasi 32-bit ora duwe masalah iki lan bakal mbukak kanthi bener, sanajan aplikasi DOS 16-bit mikirake sing input standar ditutup. Ora ana solusi workaround sing dikenal ing wektu iki.

Redirection antarane NUL: piranti lan aplikasi 16-bit ora tansah bisa. Nalika ngganti saka NUL:, sawetara aplikasi bisa nyumerepi, liyane bakal njaluk arus tanpa wates `` 0x01 '' bita, lan sawetara bakal bener njaluk berkas akhir langsung; prilaku kasebut misale jek gumantung marang apa sing diolah dadi aplikasi kasebut. Nalika ngganti luwih saka 4K utawa luwih nganti NUL:, sawetara aplikasi bakal digantung. Masalah ing ndhuwur ora kedadeyan karo aplikasi 32-bit.

Kabeh aplikasi DOS 16-bit kasedhiya kanthi sinkron. Kabeh input standar saka pipa menyang aplikasi DOS 16-bit dikumpulake dadi file sementara; ujung pipa liyane kudu ditutup sadurunge aplikasi DOS 16-bit wiwit dileksanakake. Kabeh output utawa kesalahan standar saka aplikasi DOS 16-bit menyang pipa bakal diklumpukake dadi file-file temporer; aplikasi kudu mandheg sadurunge file sakdurunge dialihake menyang tahap sabanjure ing pipeline. Iki amarga workaround kanggo bug Windows 95 ing implementasine pipa, lan carane standar shell Windows 95 DOS ngontrol pipa dhewe.

Aplikasi tartamtu, kayata command.com , ora bisa dileksanakake kanthi interaktif. Aplikasi sing langsung ngakses jendhela console, tinimbang maca saka input standar lan nulis menyang standar output bisa gagal, nyumerepi Tcl, utawa malah nggantung sistem yen jendhela konsol pribadi dhewe ora kasedhiya.

Macintosh

Printah perintah ora dileksanakake lan ora ana ing Macintosh.

Unix

Tilas exec wis kanthi fungsional lan dianggo minangka diterangake.

Deloken sisan

kesalahan (n), mbukak (n)

Tembung kunci

nglakokaké, pipo, redireksi, subprocess

Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.