Exec - Linux Command - Unix Command

exec - Invoke subprocess (es)

Laburpena

exekutatu ? aldatu ? arg ? arg ... ?

deskribapena

Komando honek bere argumentuak tratatzen ditu prozesu bat edo gehiago exekutatzeko zehaztapen gisa. Argumentuak marra arrunt estruktura baten forma hartzen dute, arg bakoitza komando baten hitz bihurtzen denean eta komando bakoitza subprozesua bihurtzen da.

Hasierako argumentuak abiaraztean hasten badira - orduan komando lerroko etengailuak bezala tratatzen dira eta ez dira kanalizazioen zehaztapenaren zati. Ondorengo etengailuak onartzen dira:

-keepnewline

Lineako irteeraren amaierako lerroa mantentzen du. Normalean lerro berri bat ezabatuko da.

-

Konmutadoreak amaierako markoak markatzen ditu. Honen argudioak lehenengo argumentu bezala tratatuko dira nahiz eta hasten den - .

Arg (edo arg- en) parekorik baldin badago, azpitik azaltzen diren inprimaki bat bada, exekutatzen da exekutatzen subprocesuaren (sarrera) arteko sarrera eta irteera fluxua kontrolatzeko. Argumentu horiek ez dira gaindituko subprozesu (es). Adibidez, `` < fileName '' fileName `` <'' argumentu bereizi batean egon daiteke edo argumentu berdinarekin espazio ez ezik (hau da, `` < fileName '').

|

Orokorrean komando desberdinak bereizten ditu. Aurreko aginduaren irteera estandarra hurrengo komandoaren sarrera estandarrean sartuko da.

| &

Orokorrean komando desberdinak bereizten ditu. Aurreko komandoaren irteera estandarra eta aurreko errore estandarra hurrengo komandoaren sarrera estandarrean sartuko dira. Birbideratze inprimaki hau 2> eta> & formak gainidazten ditu.

< fileName

Fitxategi izenarekin izeneko fitxategia irekitzen da eta kanalaren lehenengo komandorako sarrera estandarraren moduan erabiltzen da.

<@ fileId

FileId fitxategi ireki baten identifikatzailea izan behar du, esate baterako, irekitako aurreko deiaren itzulera-balioa. Kanalizazioko lehen komandorako sarrera estandarra bezala erabiltzen da. Fitxategia irakurtzeko ireki behar da.

<< balioa

Balio lehen komandoari pasatzen zaio sarrera estandar gisa.

> fileName

Azken komandoaren irteera estandarra FileName izeneko fitxategira birbideratuko da, aurreko edukiak gainidatziz.

2> fileName

Orokorrean komando guztien errore estandarra FileName izeneko fitxategira birbideratuko da, bere aurreko edukiak gainidatziz.

> & fitxategiaName

Komando guztien azken komandoa eta estandarra errudunaren irteera estandarrak fileName izeneko fitxategira birbideratzen dira, aurreko edukiak gainidatziz.

>> fileName

Azken komandoaren irteera estandarra FileName izeneko fitxategira birbideratzen da, gainidatzi baino gehiago.

2 >> fileName

Orokorrean komando guztien errore estandarra FileName izeneko fitxategira birbideratzen da, gainidatzi baino gehiago eransten zaio.

>> & fitxategiaName

Komando guztien azken komandoaren eta errore estandarraren irteera estandarrak FileName izeneko fitxategira birbideratzen dira, gainidatzi baino gehiago eransteko.

> @ fileId

FileId fitxategi ireki baten identifikatzailea izan behar du, esate baterako, irekitako aurreko deiaren itzulera-balioa. Azken komandoaren irteera estandarra fileId fitxategian birbideratuko da, idazteko ireki behar dena.

2> @ fileId

FileId fitxategi ireki baten identifikatzailea izan behar du, esate baterako, irekitako aurreko deiaren itzulera-balioa. Orokorrean komando guztien errore estandarra fitxategiaren fitxategi batera birbideratuko da. Fitxategia idazteko ireki behar da.

> & @ fitxategiaId

FileId fitxategi ireki baten identifikatzailea izan behar du, esate baterako, irekitako aurreko deiaren itzulera-balioa. Komando guztien azken komandoaren eta errore estandarraren irteera estandarrak fitxategiaren fitxategi batera birbideratzen dira. Fitxategia idazteko ireki behar da.

Irteera estandarra birbideratua ez bada, exekutatu komandoak kanalizazioko azken komandotik irteera estandarra itzultzen du. Kanalaren edozein komandoetako bat ateratzen denean anormalki edo hilik edo bertan behera uzten badira, exekuzioak akats bat itzuliko du eta errore-mezuak kanalizazioaren irteera egingo du, akats mezuak ondorengo terminoak deskribatuz; errorCode aldagaiak azken uneko terminoari buruzko informazio gehigarria jasoko du. Komandoetako batek bere errore-fitxategi estandarrarekin idazten badu eta errore estandarra ez da birbideratzen, exekutatzaileak akats bat itzuliko du; Errore-mezuak kanalizazioaren irteera estandarraren barnean sartzen dira, terminazio anormalei buruzko mezuak jarraituz (baldin badago) eta erroreen irteera estandarraren ondoren.

Emaitza edo errore mezu berriaren azken karakterea lerro berri bat bada, pertsonaia hori emaitza edo errore mezua ezabatzen da normalean. Hau Tclren itzulerako baloreekin konbinatzen da, eta ez dira normalean lerro berriekin amaitzen. Hala eta guztiz ere, bada -keepnewline zehazten bada, lerro berrien amaiera mantentzen da.

Sarrera estandarra ez bada `` <'' edo `` << '' edo `` <@ '' birbideratzen bada, kanalizazioan lehen komandoaren sarrera estandarra aplikazioaren uneko sarrera estandarrean hartuko da.

Azken argumentua `` & '' bada, kanalizazioa hondoan exekutatuko da. Kasu honetan, exekutatu komandoak bere elementuak prozesu identifikatzaileak dira hari lotutako prozesu guztietan identifikatzeko. Kanaleko azken komandoaren irteera estandarrak aplikazioaren irteera estandarrera iritsiko dira, birbideratu ez bada eta kanaleko komando guztien errore-irteera aplikazioaren errore-fitxategi estandarrarekin batera birbideratuko ez bada.

Komando bakoitzaren lehen hitza komandoaren izena da; tilde-substitution egiten da bertan, eta emaitza barrak ez badu, orduan PATH inguruneko aldagaiaren direktorioek emandako izena exekutagarri baten bila dabiltza. Izenak barra bat badu, orduan uneko direktorioan dagoen exekutagarriaren irismena aipatu behar da. Ez da `` glob '' hedapenik edo beste shell-like ordezpenetan komandoen argumentuetan egiten dira.

Portabilitate gaiak

Windows (bertsio guztiak)

Socket batetik irakurri edo idatziz, `` @ fileId '' notazioa erabiliz, ez du funtzionatzen. Socket batetik irakurtzean, 16 biteko DOS aplikazioa zintzilikatuko da eta 32 biteko aplikazioa berehala itzuliko da fitxategiaren amaieran. Aplikazio motak socket batera idazten duenean, informazioa kontsolara bidaltzen da, bat badago edo baztertzen bada.

Tk kontsolako testu-widgetak ez ditu IO gaitasunen benetako estandarrak ematen. Tk azpian, sarrera estandarretik birbideratzerakoan, aplikazio guztiek berehalako fitxategiaren amaiera ikusiko dute; Irteera estandarretik birbideratutako informazioa edo errore estandarra baztertu egingo dira.

Barruan edo atzerantz barrurantz onartzen dira Tcl komandoentzako argumentu bereizle gisa. Aplikazio bat exekutatzean, aplikatzeko zehaztutako bidea izenek aurrerantz edo atzera lerrokatuta izan ditzakete bide-bereizle gisa. Kontuan izan, ordea, Windows aplikazio gehienek onartzen duten argumentuak barrutik birbidalizatuz soilik aukera mugatzaile gisa eta alderantzizko barra bideetan soilik. Aurrerapen barraren bide-izen bat zehazten duen aplikazio batera argumentuak ez dira automatikoki bihurtuko atzeko barrako karakterea erabiltzeko. Argumentu batek barrurantz biratzen badu bide-bereizlea bezala, agian bide-izen gisa aitortu daiteke, programaren arabera.

Gainera, 16 biteko DOS edo Windows 3.x aplikazioa deituz gero, bide-izen guztiek laburra, kriptiko eta bide-formatua erabili beharko dute (adibidez, `` applba ~ 1.def '' ordez `` applbakery.default '' ordez. ).

Bi edo gehiagoko bidexka aurrera edo atzera lerro batean bide-sare bati erreferentzia egiten zaio. Adibidez, direktorio errodunaren concatenation simple c: / azpidirektorio / leihoak / sistemak c: // windows / system (bi barraskak elkarrekin) lortuko ditu, hau da, sistema izeneko muntatze-puntua aipatzen duen makina leihoetan (eta c: / ez zaio jaramonik egiten), eta ez da c: / windows / system baliokidea, uneko ordenagailuko direktorio bat deskribatzen duena. Fitxategi batzeko komandoa bide-osagaiak concatenate erabili behar dira.

Windows NT

Aplikazio bat exekutatzen saiatzean, lehenik zehaztutako izena bilatzen du. Ondoren, ordena, .com , .exe eta .bat izenaren amaieran eransten dira eta izen luzeagoa bilatzen du. Direktorio izen bat zehaztu ez bada, aplikazioaren izenaren zati gisa, ondorengo direktorioak automatikoki bilatuko dira ordena aplikazioa aurkitzeko:

Tcl exekutagarria kargatu zeneko direktorioa.
Uneko direktorioa.
Windows NT 32 biteko sistema direktorioa.
Windows NT 16 biteko sistemaren direktorioa.
Windows NT etxeko direktorio.
Bidean zerrendatutako direktorioak.

Shell-eko komandoak exekutatzeko, esate baterako, esate baterako eta kopiatzeko , deitzaileek `` cmd.exe / c '' agindua behar dute nahi den komandora.

Windows 95

Aplikazio bat exekutatzen saiatzean, lehenik zehaztutako izena bilatzen du. Ondoren, ordena, .com , .exe eta .bat izenaren amaieran eransten dira eta izen luzeagoa bilatzen du. Direktorio izen bat zehaztu ez bada, aplikazioaren izenaren zati gisa, ondorengo direktorioak automatikoki bilatuko dira ordena aplikazioa aurkitzeko:

Tcl exekutagarria kargatu zeneko direktorioa.
Uneko direktorioa.
Windows 95 sistemaren direktorioa.
Windows 95 etxeko direktorio.
Bidean zerrendatutako direktorioak.

Ordezko komandoen shellak exekutatzeko, esate baterako, esate baterako eta kopiatzeko , deitzaileek `` command.com / c '' izena jarri behar diote nahi den komandoari.

16 biteko DOS aplikazio batek kontsumitzaile baten sarrera estandarra irakurri ondoren eta irten ondoren, guztiak 16 biteko DOS aplikazioak exekutatzen baditu, sarrera estandarra dagoeneko itxita egongo da. 32 biteko aplikazioek ez dute arazo hau eta behar bezala exekutatuko dira, nahiz eta 16 biteko DOS aplikazioak sarrera estandarra itxi dela pentsatzen duen. Une honetan ez dago errore honi buruzko konponbide ezagunik.

NUL: gailua eta 16 biteko aplikazio baten arteko birbideratzea ez da beti funtzionatzen. NULetik birbideratzerakoan, aplikazio batzuk zintzilikatu daitezke; beste batzuek, berriz, `` 0x01 '' byte-ko korronte infinitua lortuko dute eta batzuek zuzenean berehalako fitxategi amaiera lortuko dute; portaera badirudi aplikazioan bildutako zerbait araberakoa dela. 4K baino handiagoa edo gutxi gorabehera NULra birbideratzean, aplikazio batzuk zintzilikatuko dira. Goiko galderak ez dira 32 biteko aplikazioekin gertatzen.

DOS 16 biteko aplikazio guztiak exekutatzen dira sinkronoki. Kanalizazio batetik sarrera estandar guztiek 16 biteko DOS aplikaziora aldi baterako fitxategian biltzen dira; Kanalizazioaren beste muturra itxi egin behar da 16 biteko DOS aplikazioa exekutatzen hasi baino lehen. Pantaila bateko 16 biteko DOS aplikazioaren irteera estandar edo errore bat aldi baterako fitxategietan biltzen da; Aplikazioa behin-behineko fitxategiak berriro bideratu behar dira hodiaren hurrengo fasera bideratu aurretik. Hori dela eta, Windows 95-eko akatsen konponbide baten ondorioz hodien ezarpenean oinarritzen da, eta Windows 95 DOS estandarraren estandarrak nola funtzionatzen duen kontrolatzen du.

Zenbait aplikazio, hala nola, command.com , ez dira exekutatuko interaktiboki. Kontsolaren leihoan zuzenean sartzeko aplikazioak, beren sarrera estandarraren eta idatzizko irteeratik irakurtzeko baino ez dituztela akatsak huts egin, Tcl zintzilikatu edo sistema zintzilikatu beraien kontsola pribatuaren leihoa ez badago eskuragarri.

Macintosh

Exekutatu komandoa ez dago inplementatuta eta ez dago Macintosh azpian.

Unix

Exekutatu komandoa guztiz funtzionala da eta deskribatzen du.

Ikusi ere

errorea (n), ireki (n)

Keywords

exekutatu, kanalizazioa, birbideratzea, azpiprozesua

Garrantzitsua: erabili man komandoa ( % man ) komando bat nola erabiltzen den zure ordenagailuan.