Exec - Linux Command - Unix Command

exec - Invitéiere Subprocess (es)

Synopsis

Ausféierung ? Schalter ? arg ? arg ... ?

Beschreiwung

Dëst Kommando behandelt seng Argumenter als d'Spezifizéierung vu ee oder méi Ënnerprocessë fir auszeféieren. Déi Argumenter erlaben d'Form vun enger Standard Shell Pipeline, wou all Arg ee Wuert vun engem Kommando gëtt an all Enquête gëtt e Subprocess.

Wann déi éischt Argumenter fir de Start ze starten, da gi se als Kommando-Schalter behandelt a si sinn net Deel vun der Pipeline-Spezifikatioun. Déi folgend Schalter sinn aktuell ënnerstëtzt:

-keepnewline

Bleift eng trailingline-Linn op der Pipelineausgab. Normalerweis gëtt e séieren Newline geläscht.

- Déi

Marks de Schalter. Den Argumenter no dëser Form gëtt als éischt Argument behandelt, och wann et mat engem - begéint.

Wann e Arg (oder Arg Arg ) e vun de Formulairen beschriwwen huet, dann ass se vum Ex bezeechent fir de Fluss vun der Input an Ausgab vun der Subprozedur (es) ze kontrolléieren. Dës Argumenter ginn net an d'Ënnerprobatioun (es) geleet. In Formulairen wéi `` < fileName '' DateiName kann entweder an engem separater Argument vun `` <'' oder am selwechte Argumenter net ouni intervenéiert Raum (dh `` < fileName '') sinn.

|

Separéiere Kommandoen an der Pipeline. D'Standardausgabe vum virausbezunnen Kommando gëtt an den Standarde vum nächste Kommando gepompelt.

& |

Separéiere Kommandoen an der Pipeline. Déi zwee Standardausgang a Standardfehler vum virausbezuelten Kommando ginn an den Standarde vum nächste Kommando gepackt. Dës Form vun Oflehnung overrides Formen wéi 2> an> &.

< fileName

De Fichier vum fileName gëtt geännert an als Standard-Input fir den éischte Kommando an der Pipeline benotzt.

<@ fileId

FileId muss de Identifikateur fir eng Datei opmaachen, wéi zum Beispill den Rückgabewert vun enger vireger Ruff fir opzemaachen . Et gëtt als standard Input fir den éischte Kommando an der Pipeline benotzt. FileId muss op d'Liesen ageweit ginn.

<< Wäert

Wäert gëtt un déi éischt Kommando wéi seng Standarde verëffentlecht.

> fileName

Standard Output vum leschte Kommando ass op d'Datei zeréckgelooss , déi den Numm " DateName" bezeechent gëtt.

2> DateiName

Standardfehler vun all Kommandoen an der Pipeline ginn an d'Datei namens DateName ëmgeleet .

> & DateiName

Déi zwee Standardausgaab vum letzte Kommando a Standardfehler vun all Kommandë ginn op d'Datei namens DateName ëmgeleet , a wéi en se virdrun agehalen ass.

>> fileName

Standardproduktioun vum leschte Kommando ass op d'Datei zeréckgelooss , déi den DateNameName anhëllt , anstatt et ze änneren, an net ze iwwerschreiwen.

2 >> fileName

Standardfehler vun all Kommandoen an der Pipeline ass an d'Datei FileName ëmgeleet ginn , déi se anhëlt anstatt dat ze verschreiwen.

>> & DateiName

Déi zwee Standardausgaab vum leschte Command a Standardfehler vun all Kommandanten ginn op d'Datei namens DateName ëmgeleet , andeems se et anstatt ewechschreiwen.

> @ fileId

FileId muss de Identifikateur fir eng Datei opmaachen, wéi zum Beispill den Rückgabewert vun enger vireger Ruff fir opzemaachen . Standardproduktioun vum leschte Kommando ass op d' Datei " fileId " zréckgaang , déi fir Schreiwe gefrot gouf.

2> @ fileId

FileId muss de Identifikateur fir eng Datei opmaachen, wéi zum Beispill den Rückgabewert vun enger vireger Ruff fir opzemaachen . Standardfehler vun all Kommandoen an der Pipeline ass op d' Datei fileId ëmgeleet . De Fichier muss opgeschriwwe ginn fir ze schreiwen.

> & @ fileId

FileId muss de Identifikateur fir eng Datei opmaachen, wéi zum Beispill den Rückgabewert vun enger vireger Ruff fir opzemaachen . Déi zwee Standardausgang vum leschte Kommando a Standardfehler vun all Kommandanten ginn op d' Datei fileId ëmgeleet . De Fichier muss opgeschriwwe ginn fir ze schreiwen.

Wann déi normale Ausgab net duerchgefouert gi war, féiert de Kommando vum Exek zréck op den Standardausgang vum leschte Kommando an der Pipeline. Wann e vun de Kommandoen an der Pipeline abnormal ervirgeet oder getötegt oder suspendéiert gi sinn, féiert dann e Feeler zréck an d'Fehlermeldung wäert d'Pipelineausgang enthalen, gefollegt vu Fehlermeldung, déi d'onnormal Terminatioun beschreiwen; D' Erofsetzung vum errorCode enthält méi Informatiounen iwwer déi lescht abnormal Terminatioun. Wann eng vun de Befehle schreift op seng Standardfichierdatei an datt de Standardfehler net ëmgeleet gëtt, dann gëtt se exec e Fehler; D'Fehlermeldung enthält d'Standardausgangs vun der Pipeline, an duerno mat Messagen iwwer onnormal Terminatiounsaarbecht (wann iergendee), an d'Standardfehlerausgang gefollegt ass.

Wann de leschte Charakter vum Resultat oder der Fehlermeldung eng Newline ass, gëtt de Charakter normalerweis aus dem Resultat oder der Fehlermeldung geläscht. Dëst ass konsistent mat anere Tcl-Wäertwerte, déi normalerweis net mat Newlines ophalen. Awer wann -keepnewline ass spezifizéiert ginn ass d' nächst Linn oprecht .

Wann de Standardeingang net opgefouert gëtt mat `` <'' oder `` << 'oder `` <@' 'ass de Standardeingriff fir den éischte Kommando an der Pipeline aus dem aktuellen Standarde vun der Applikatioun geholl ginn.

Wann de leschte Arg ass `` & '' ass d'Pipeline dann am Hannergrond ausgezeechent ginn. An dësem Fall gëtt den Exekutiounsbefehl eng Lëscht erëmginn, wou d'Elementer de Prozessidentifizéierer fir all Subprocesses an der Pipeline sinn. De Standardausgang vum leschte Kommando an der Pipeline ginn an d'Standardausgangssetzung vun der Applikatioun gitt, wann et net ëmgeluecht gouf, an de Fehler vun all de Kommandoen an der Pipeline ginn an d'Standardfichierform vun der Applikatioun gitt, ausser de Superrued.

Den éischte Wuert an all Kommando gëtt als de Kommandantenname geholl; D'Tilde-Substitutioun gëtt et gemaach, a wann d'Resultat keng Schräars enthält, da sinn d'Verëffentlechungen an der PATH-Umännerungsvariablen no engem Executable vum gezeechten Numm gesicht. Wann de Numm e Schlëssel enthält, muss et op eng ausführbar erreechbar aus dem aktuellen Verzeechnes rechnen. Kee `` Glob '' Expansioun oder aner Schild-ähnlech Substitutionen ginn op d'Argumenter op Kommandatiounen gemaach.

Portabilitéitsprobleemer

Windows (all Versiounen)

Liese vun oder schreift Iech op eng Socket, mat der `` @ fileId '' Notation, funktionéiert net. Beim Liesen vun enger Socket ass eng 16-Bit DOS-Applikatioun hängt an eng 32-Bit-Applikatioun wäert direkt mat der End-of-Datei zeréckkucken. Wann entweder den Typ vun der Applikatioun op eng Socket schreift, da gëtt d'Informatioun un d'Konsole verschéckt, wann een elo ass oder gëtt verworf.

Den Tk-Konsoltext-Widget erlaabt net echte Standard IO Kapazitéiten. Ënnert Tk, wann Dir vun der Standardeingroe weggedeelt sidd, ginn all App erlaabt en direkten Enn vun der Datei; Informatioun gëtt op d'Standardausgang oder de Standardfehler eropgelueden.

Entweder Forward oder Rescht Schräars sinn als Path Separatoren fir Argumenter op Tcl-Kommandoen akzeptéiert. Beim Ausféieren vun enger Applikatioun kann de Wee fir déi Applikatioun fir d'Applikatioun spezifizéiert kënne viraus oder riicht Schlësselen wéi Path Separatoren. Vergiess awer, datt déi meeschte Windows-Applikatiounen Argumenter mat Forward Slashes nëmmen als Optiounsbeschränkungen an Backslashes nëmmen an de Weeër huelen. All Argumenter fir eng Applikatioun déi e Passwuert mat Virschéissen spezifizéiere wäerte automatesch net konvertéiert ginn, fir den Backslash Charakter ze benotzen. Wann e Argument fir Slashes als Path Séparator enthält, kann et ofhänken oder net als PathName erkennen, jee no dem Programm.

Zousätzlech, wann Dir eng 16-Bit DOS- oder Windows 3.X Applikatioun ruffe muss all Pfadnamen de kuerzen, kryptesche Weemaart benotzen (zB mat "applba ~ 1.def" anstelle vun `` applbakery.default ' ).

Zwee oder méi Forward oder Reschter Slashes réckelen an engem Wee hänken op e Netzwierk. Zum Beispill gëtt eng einfache Verkafsetzung vum Root-Verzeichnis c: / mat engem Ënnerkonto / Windows / System erlaabt c: // windows / system (two slashes together), wat d'Mount Mount genannt System op der Maschinn heescht Windows (a c: / ass ignoréiert), an ass net equivalent zu c: / windows / system , wat e Verzeichnis am aktuellen Computer beschreift. D' Datei join command soll benotzt ginn fir Weeër Komponenten ze verkafen.

Windows NT

Wann Dir probéiert eng Applikatioun auszeféieren, gitt éischt Recherchen op den Numm, wéi et uginn hutt. Dann, an Uerdnung, .com , .exe , a .bat ginn am Ende vum spezifizéierte Numm appeléiert a fuerdert dee méi laang Numm. Wann e Verëffentlechen Numm net als Deel vum Applikatiounnamen uginn hutt, ginn déi folgend Verëffentlechungen automatesch an der Sich no Ufro gemaach wann Dir versicht der Kaart ze lokaliséieren:

De Verzeichnis, aus deem den Tcl-ausführbar geliwwert gouf.
Den aktuellen Dossier.
De Windows NT 32-Bit System Verzeichnis.
De Windows NT 16-Bit System Verzeichnis.
De Windows NT-Home directory.
D'Verëffentlechungen déi am Wee steet.

Fir déi Schuel gebaaft Befehle wéi Dir a Kopie ze exekutéieren, muss de Ruffe " cmd.exe / c " op de gewënschten Kommando benotzen.

Windows 95

Wann Dir probéiert eng Applikatioun auszeféieren, gitt éischt Recherchen op den Numm, wéi et uginn hutt. Dann, an Uerdnung, .com , .exe , a .bat ginn am Ende vum spezifizéierte Numm appeléiert a fuerdert dee méi laang Numm. Wann e Verëffentlechen Numm net als Deel vum Applikatiounnamen uginn hutt, ginn déi folgend Verëffentlechungen automatesch an der Sich no Ufro gemaach wann Dir versicht der Kaart ze lokaliséieren:

De Verzeichnis, aus deem den Tcl-ausführbar geliwwert gouf.
Den aktuellen Dossier.
De Windows 95 System Verzeichnis.
De Windows 95 Home-Verzeichnis.
D'Verëffentlechungen déi am Wee steet.

Fir déi Schuel gebaaft Befehle wéi Dir a Kopie auszeféieren, muss de Ruffe " command.com / c " op déi gewënschten Kommando ze benotzen.

Wann eng 16-Bit DOS-Applikatioun de Standardeingriff vun enger Konsole liesen an dann ze beweegen ass, all spéider 16-Bit DOS-Programmer lafen d'Standardeingunge wéi scho geschlossen. 32-Bit-Applikatiounen hunn dëst Problem net anhuelen a leeë fäerdeg sinn, och no enger 16-bit DOS-Applikatioun denkt datt dës Standardeingriff zou sinn. Et gëtt keng bekannt Erklärung fir dësen Feeler an dëser Zäit.

Redirection tëschent dem NUL: Apparat an enger 16-Bit-Applikatioun funktionnéiert net ëmmer. Wann Ufro vun NUL: e puer Applikatiounen hänken, anerer kréien en onendleche Stroum vun `` 0x01 '' Bytes, an e puer kréien e richtegt Enn vun der Datei. De Verhalen schéngt wéi wann et an der Applikatioun selwer kompiléiert ass. Wann Dir méi wéi 4K oder méi wéi NUL reduede wëllt, hannerloossen e puer Applikatiounen. Déi heibanne Problemer besteet net mat 32-Bit-Applikatiounen.

All DOS 16-Bit-Applikatioune sinn synchron. All Standardeinggang vun engem Päif zu enger 16-Bit DOS-Applikatioun gëtt an enger temporärer Datei gesammelt; Déi aner Säit vum Pipe muss zougefouert ginn, bis d'16-Bit DOS-Applikatioun ufänkt. All Standardausgang oder Feeler vun enger 16-Bit DOS-Applikatioun op e Päif ass an temporär Dateien gesammelt; D'Applikatioun muss ofleeën, ier déi temporär Dateien eropgeleet ginn op d'nächst Stuf vun der Pipeline. Dëst ass wéinst enger Problemumgehung fir e Windows 95 Fehler bei der Ëmsetzung vu Päifen, a wéi d'Standard Windows 95 DOS Shell handelt Päifen selwer.

Certain Applikatiounen, wéi command.com , sollten net interaktiv wären. Applikatiounen déi direkt op der Konsolfenster zougänglech sinn, wéi d'Liesen vun hirer Standardeingriffe an de Schreiwe vun hirer Standardausgabe kënne falsch maachen, Tcl hänken oder d'System hänken wann hir eegene Privatkonsolefen zevill net verfügbar sinn.

Macintosh

Den Exekutiounbefehl ass net ëmgesat a gëtt net ënnert Macintosh existéiert.

Unix

Den Exekutiounsbefehl ass voll funktionell an funktionnéiert wéi beschriwen.

Kuck och

Feeler (n), oppene (n)

Schlësselwieder

Ausféierung, Pipeline, Neiwahlen, Subprozedess

Wichteg: Benotzt de Mann Kommando ( % Mann ) fir ze kucken wéi e Kommando op Äre Computer benotzt.