Exec - Linux Command - Unix Command

exec - Pag-invoke subprocess (mga)

Sinopsis

exec ? switch ? arg ? arg ... ?

Deskripsiyon

Kining maong sugo nagtagad sa iyang mga argumento isip usa ka paghisgot sa usa o daghan pang subprocesses nga ipatuman. Ang mga argumento nagbaton sa porma sa usa ka standard nga tubo sa tubo diin ang matag arg mahimong usa ka pulong sa usa ka sugo, ug ang matag usa ka managlahi nga sugo mahimong usa ka subprocess.

Kung ang unang mga argumento nga magsugod sa - dayon sila pagtratar isip command-line switch ug dili kabahin sa paghingalan sa pipeline. Ang mosunod nga mga switch karon gisuportahan:

-dugang nga linya

Nagpabilin sa usa ka trailing newline sa output sa tubo. Kasagaran usa ka trailing newline ang pagahanawon.

-

Nagmarka sa katapusan sa mga switch. Ang argumento nga nagsunod sa usa niini pagaisipon ingon nga unang arg bisan kung magsugod kini uban sa usa - .

Kung ang usa ka arg (o pares of arg 's) adunay usa sa mga porma nga gihulagway sa ubos dayon gigamit kini sa exec aron kontrolon ang dagan sa input ug output taliwala sa subprocess (es). Ang maong mga argumento dili ipasa sa subprocess (es). Sa mga porma sama sa `` < fileName '' fileName mahimo nga adunay usa ka lahi nga argumento gikan sa `` <'' o sa sama nga argumento nga walay espasyo (`` < fileName '').

|

Gilain ang lahi nga mga sugo sa pipeline. Ang standard nga output sa nauna nga sugo ipa-piped ngadto sa standard input sa sunod nga command.

| &

Gilain ang lahi nga mga sugo sa pipeline. Ang duha ka standard output ug standard error sa nauna nga mando ipa-piped ngadto sa standard input sa sunod nga command. Kini nga porma sa redirection mo-override sa mga porma sama sa 2> ug> &.

< fileName

Ang file nga ginganlan sa fileName gibuksan ug gigamit isip standard input alang sa unang command sa pipeline.

<@ fileId

Ang FileId kinahanglan mao ang tigpaila alang sa usa ka bukas nga file, sama sa bili sa pagbalik gikan sa usa ka kanhi nga tawag aron mabuksan . Gigamit kini isip standard input alang sa unang command sa pipeline. Ang FileId kinahanglan nga bukas alang sa pagbasa.

<< bili

Ang bili gipasa ngadto sa unang sugo ingon nga standard input niini.

> fileName

Ang standard nga output gikan sa katapusang komandante gipahatod ngadto sa file nga ginganlan fileName , nga gi-overwrite ang kaniadto nga mga sulod.

2> fileName

Ang standard error gikan sa tanan nga mga comma sa pipeline gi-redirect ngadto sa file nga ginganlan fileName , nga gi-overwrite ang kanhi nga sulod niini.

> & fileName

Ang duha ka standard nga output gikan sa katapusan nga command ug standard error gikan sa tanan nga mga comma sa mga pag-redirect ngadto sa file nga ginganlan fileName , nga gi-overwrite ang kaniadto nga mga sulod.

>> fileName

Ang standard nga output gikan sa katapusan nga komand sa commandon gibalhin ngadto sa file nga ginganlan fileName , nagdala niini imbis nga isulat kini.

2 >> fileName

Ang kasaypanan nga sayop gikan sa tanan nga mga sugo sa linya sa tubo gi-redirect ngadto sa file nga ginganlan fileName , nagdala niini imbis nga isulat kini.

>> & fileName

Ang duha ka standard nga output gikan sa katapusan nga command ug standard error gikan sa tanan nga mga comma sa mga pag-redirect ngadto sa file nga ginganlan fileName , nagdala niini kay sa gi-overwrite kini.

> @ fileId

Ang FileId kinahanglan mao ang tigpaila alang sa usa ka bukas nga file, sama sa bili sa pagbalik gikan sa usa ka kanhi nga tawag aron mabuksan . Ang standard nga output gikan sa katapusan nga command gi-redirect ngadto sa fileId file, nga kinahanglan nga bukas alang sa pagsulat.

2> @ fileId

Ang FileId kinahanglan mao ang tigpaila alang sa usa ka bukas nga file, sama sa bili sa pagbalik gikan sa usa ka kanhi nga tawag aron mabuksan . Ang kasaypanan nga sayop gikan sa tanan nga mga sugo diha sa pipeline gi-redirect ngadto sa fileId file. Kinahanglan mabuksan ang file alang sa pagsulat.

> & @ fileId

Ang FileId kinahanglan mao ang tigpaila alang sa usa ka bukas nga file, sama sa bili sa pagbalik gikan sa usa ka kanhi nga tawag aron mabuksan . Ang duha ka standard nga output gikan sa katapusan nga command ug standard error gikan sa tanan nga mga comma sa mga redirect ngadto sa fileId file. Kinahanglan mabuksan ang file alang sa pagsulat.

Kon ang standard nga output wala pa ma-redirect, ang command exec nagbalik sa standard output gikan sa katapusan nga command sa pipeline. Kung ang bisan unsa sa mga sugo sa pipeline exit abnormally o gipatay o gisuspinde, ang exec ipabalik ang usa ka sayup ug ang sayup nga mensahe maglakip sa output sa tubo nga sundan sa mga mensahe sa sayup nga naghulagway sa abnormal nga mga pagtapos; ang variable nga errorCode adunay dugang nga kasayuran mahitungod sa katapusang abnormal nga pagtagbo nga nahimamat. Kung ang bisan kinsa sa mga sugo nagsulat ngadto sa iyang standard error file ug nga ang standard nga sayop wala gibalhin, unya ang exec ibalik ang usa ka sayup; ang mensahe sa sayop maglakip sa standard output sa pipeline, gisundan sa mga mensahe mahitungod sa abnormal nga mga terminasyon (kung aduna man), gisundan sa standard error output.

Kung ang katapusan nga kinaiya sa resulta o sayup nga mensahe usa ka newline dayon kana nga kinaiya kasagarang matanggal gikan sa resulta o mensahe sa sayup. Kini nahiuyon sa ubang mga Tcl return values, nga kasagaran dili matapos sa mga newline. Bisan pa, kon ang bag-ong bag- o nga panulondon gihisgutan nan ang nahabilin nga bag-ong linya gihuptan.

Kung ang standard nga input wala ma-redirect sa `` <'' o `` << '' o `` <@ '' nan ang standard nga input alang sa unang command sa pipeline makuha gikan sa kasamtangang standard input sa aplikasyon.

Kung ang katapusan nga arg mao ang `` & '' nan ang pipeline ipatuman sa luyo. Sa kini nga kaso, ang command command mobalik sa lista kansang mga elemento mao ang proseso nga mga tigpaila alang sa tanan nga mga subprocesses sa pipeline. Ang standard nga output gikan sa katapusan nga command sa pipeline moadto sa standard output sa aplikasyon kon wala pa kini gibalhin, ug ang output sa sayup gikan sa tanan nga mga sugo sa pipeline moadto sa standard file sa aplikasyon nga error gawas kon ma-redirected.

Ang unang pulong sa matag sugo gikuha ingon nga command name; Ang tilde-substitution gipahigayon sa ibabaw niini, ug kung ang resulta wala'y mga slashes dayon ang mga direktoryo sa PATH environment variable ang gipangita alang sa usa ka executable sa gihatag nga ngalan. Kung ang ngalan naglangkob sa usa ka slash dayon kini kinahanglan nga nagtumong sa usa ka executable nga makab-ot gikan sa kasamtangan nga direktoryo. Ang pagpalapad sa `glob 'o uban pang mga kabag-o nga mga kapuli ang gihimo sa mga argumento sa mga sugo.

Mga Isyu sa Portability

Ang Windows (tanan nga mga bersyon)

Ang pagbasa gikan sa o pagsulat ngadto sa usa ka socket, gamit ang notipikasyon sa `` @@fileId ', wala magtrabaho. Kung magbasa gikan sa usa ka socket, ang 16-bit DOS application mag-hang ug usa ka 32-bit application mobalik dayon uban sa end-of-file. Sa diha nga ang usa ka matang sa aplikasyon nagsulat sa usa ka socket, ang impormasyon gipadala ngadto sa console, kon ang usa anaa, o gilabay.

Ang Tk console text widget wala maghatag og tinuod nga standard nga kapabilidad sa IO. Ubos sa Tk, sa pag-redirect gikan sa standard input, ang tanan nga mga aplikasyon makakita sa usa ka gilayon nga end-of-file; ang impormasyon nga gibalhin ngadto sa standard output o standard nga sayop pagalabayon.

Bisan ang mga forward o backward slashes gidawat ingon nga dalan separators alang sa mga argumento sa Tcl nga mga sugo. Sa pagpatuman sa usa ka aplikasyon, ang ngalan sa dalan nga gitakda alang sa aplikasyon mahimo usab nga maglakip sa mga forward o backward slashes ingon nga separators sa dalan. Hinumdomi, hinoon, nga kadaghanan sa mga aplikasyon sa Windows modawat sa mga argumento nga may mga forward slashes lamang ingon nga kapilian nga mga delimiters ug mga backslashes lamang sa mga dalan. Ang bisan unsang argumento sa usa ka aplikasyon nga nagtino sa usa ka pangalan sa dalan nga adunay mga forward slashes dili awtomatik nga makabig aron gamiton ang backslash character. Kung ang usa ka panaglalis naglangkob sa mga forward slashes isip separator sa dalan, mahimo o dili kini mailhan isip usa ka pangalan sa dalan, depende sa programa.

Dugang pa, sa diha nga pagtawag sa 16-bit DOS o Windows 3.X nga aplikasyon, ang tanan nga mga ngalan sa dalan kinahanglan nga gamiton ang mubo, misteryoso, agianan nga dalan (pananglitan, gamit ang `applba ~ 1.def '' imbes` `applbakery.default '' ).

Duha o kapin pa nga pauna o paatras nga mga tipak sa usa ka laray sa usa ka dalan nagtumong sa usa ka dalan sa network. Pananglitan, ang usa ka yano nga pagdugtong sa root directory c: / uban sa usa ka subdirectory / windows / system mohatag og c: // windows / system (duha ka slashes), nga nagtumong sa mount point nga gitawag nga sistema sa makina nga gitawag og mga bintana (ug ang c: / dili gisalikway), ug dili katumbas sa c: / windows / system , nga naghulagway sa direktoryo sa kasamtangan nga computer. Ang file join command kinahanglan gamiton aron pagdugtong ang mga component sa dalan.

Windows NT

Sa diha nga ang pagsulay sa pagpatuman sa usa ka aplikasyon, ipapangita una ang ngalan sa ngalan ingon nga kini natino. Dayon, sa order, ang .com , .exe , ug .bat gi-attach sa katapusan sa espesipikong ngalan ug kini nagapangita sa taas nga ngalan. Kon ang usa ka pangalan sa direktoryo wala gitino isip kabahin sa ngalan sa aplikasyon, ang mga mosunod nga mga direktoryo awtomatik nga pangitaon sa dihang mosulay sa pagpangita sa aplikasyon:

Ang direktoryo diin ang Tcl executable na-load.
Ang kasamtangan nga direktoryo.
Ang Windows NT 32-bit system directory.
Ang Windows NT 16-bit system directory.
Ang direktoryo sa home sa Windows NT.
Ang mga direktoryo nga gilista sa dalan.

Aron ipatuman ang mga comma-shell nga gitukod sama sa dir ug pagkopya , ang tigpatawag kinahanglang mag-andam sa `` cmd.exe / c '' sa gusto nga sugo.

Windows 95

Sa diha nga ang pagsulay sa pagpatuman sa usa ka aplikasyon, ipapangita una ang ngalan sa ngalan ingon nga kini natino. Dayon, sa order, ang .com , .exe , ug .bat gi-attach sa katapusan sa espesipikong ngalan ug kini nagapangita sa taas nga ngalan. Kon ang usa ka pangalan sa direktoryo wala gitino isip kabahin sa ngalan sa aplikasyon, ang mga mosunod nga mga direktoryo awtomatik nga pangitaon sa dihang mosulay sa pagpangita sa aplikasyon:

Ang direktoryo diin ang Tcl executable na-load.
Ang kasamtangan nga direktoryo.
Ang Windows 95 system directory.
Ang Windows 95 home directory.
Ang mga direktoryo nga gilista sa dalan.

Aron ipatuman ang mga comma-shell nga gitukod nga mga sugo sama sa dir ug pagkopya , ang tigpatawag kinahanglan mag-prepend sa `` command.com / c '' sa gusto nga sugo.

Sa higayon nga ang usa ka 16-bit nga DOS nga aplikasyon nagbasa sa standard input gikan sa usa ka console ug unya moundang, ang tanan nga sunod nga modagan sa 16-bit nga DOS nga mga aplikasyon makakita sa standard input nga gisirado na. Ang 32-bit nga mga aplikasyon wala niini nga problema ug pagdagan sa husto, bisan human sa usa ka 16-bit nga DOS nga aplikasyon naghunahuna nga ang standard input gisirado. Walay nahibal-an nga workaround alang niining bug niining panahona.

Ang pag-redir sa tunga-tunga sa NUL: device ug ang 16-bit nga aplikasyon dili kanunay magtrabaho. Sa pag-redirect gikan sa NUL:, ang pipila ka mga aplikasyon mahimo nga mag-hang, ang uban makadawat sa walay kinutuban nga sapa sa `` 0x01 '' bytes, ug ang uban sa tinuud makadawat sa hinanaling katapusan nga file; ang kinaiya daw nagdepende sa usa ka butang nga gitigom ngadto sa aplikasyon mismo. Sa pag-redirect mas dako pa kay sa 4K o labaw pa sa NUL:, ang pipila ka mga aplikasyon magabitay. Ang labaw sa mga problema dili mahitabo sa 32-bit nga mga aplikasyon.

Ang tanan nga mga DOS 16-bit nga mga aplikasyon nagadungan sa pagdagan. Ang tanan nga mga standard nga input gikan sa usa ka pipe ngadto sa 16-bit nga DOS nga aplikasyon gikolekta sa usa ka temporaryo nga file; ang pikas tumoy sa tubo kinahanglan sirado sa dili pa magsugod ang pagpatuman sa 16-bit DOS application. Ang tanan nga standard output o sayup gikan sa 16-bit nga DOS nga aplikasyon ngadto sa usa ka tubo gikolekta ngadto sa temporaryo nga mga file; ang aplikasyon kinahanglan tapuson sa dili pa ang mga temporaryo nga mga file nga gibalhin ngadto sa sunod nga yugto sa pipeline. Kini tungod sa usa ka workaround alang sa usa ka Windows 95 bug sa pagpatuman sa mga tubo, ug kon giunsa nga ang standard nga Windows 95 DOS shell maoy nagdala sa mga tubo mismo.

Ang pipila ka mga aplikasyon, sama sa command.com , dili kinahanglan nga ipatuman sa interaktibo. Ang mga aplikasyon nga diretso nga maka-access sa console window, kay sa pagbasa gikan sa ilang standard input ug pagsulat sa ilang standard nga output mahimo mapakyas, mag-hang Tcl, o gani magasukad sa sistema kon ang ilang kaugalingong pribadong console window dili mahimo nila.

Macintosh

Ang exec command wala ipatuman ug dili anaa ubos sa Macintosh.

Unix

Ang command command hingpit nga magamit ug magtrabaho sama sa gihulagway.

Tan-awa usab

sayop (n), bukas (n)

Mga pulong

pag-execute, pipeline, redirection, subprocess

Importante: Gamita ang tawo nga sugo ( % man ) aron makita kung giunsa ang usa ka sugo nga gigamit sa imong partikular nga computer.