exec - Povabite podproces (e)
Povzetek
exec? stikala ? arg ? arg … ?
Opis
Ta ukaz obravnava svoje argumente kot specifikacijo enega ali več podprocesov za izvedbo. Argumenti so v obliki standardnega plinovoda, kjer je vsak arg postane ena beseda ukaza in vsak poseben ukaz postane podproces.
Če začetni argumenti doexec začeti z- potem se obravnavajo kot stikala ukazne vrstice in niso del specifikacije plinovoda. Trenutno podpirajo naslednja stikala:
-seepnewline
Ohrani zadnjo linijo na izhodu plinovoda. Običajno bo izbrisana nova linija.
--
Označuje konec stikala. Argument, ki sledi temu, se bo obravnaval kot prvi arg tudi če se začne z a-.
Če je arg (ali par arg ') ima eno od spodaj opisanih obrazcev, ki ga uporabljaexec za nadzor pretoka vhodnih in izhodnih med podprocesom (-ami). Takšni argumenti ne bodo posredovani podprocesu. V oblikah, kot je `` < Ime datoteke '' Ime datoteke lahko bodisi v ločenem argumentu iz ,, <'' ali v istem argumentu brez vmesnega prostora (to je `` < Ime datoteke '').
|
Ločuje različne ukaze v pripravi. Standardni izhod predhodnega ukaza se bo vstavil v standardni vhod naslednjega ukaza.
|&
Ločuje različne ukaze v pripravi. Običajni izhod in standardna napaka prejšnjega ukaza se vnesejo v standardni vhod naslednjega ukaza. Ta oblika preusmerjanja preglasi oblik, kot sta 2> in> &.
< Ime datoteke
Datoteka z imenom Ime datoteke se odpre in uporablja kot standardni vhod za prvi ukaz v plinovodu.
<@ fileId
FileId mora biti identifikator za odprto datoteko, kot je povratna vrednost prejšnjega klicaodprto. Uporablja se kot standardni vhod za prvi ukaz v plinovodu. FileId mora biti odprt za branje.
<< vrednost
Vrednost se kot prvotni vnos prenese na prvi ukaz.
> Ime datoteke
Standardni izhod iz zadnjega ukaza je preusmerjen v datoteko z imenom Ime datoteke , prepiše svojo prejšnjo vsebino.
2> Ime datoteke
Standardna napaka vseh ukazov v plinovodu se preusmeri v datoteko z imenom Ime datoteke , prepiše svojo prejšnjo vsebino.
>& Ime datoteke
Običajni izhod iz zadnjega ukaza in standardna napaka iz vseh ukazov se preusmeri v datoteko z imenom Ime datoteke , prepiše svojo prejšnjo vsebino.
>> Ime datoteke
Standardni izhod iz zadnjega ukaza je preusmerjen v datoteko z imenom Ime datoteke , ki mu prinaša, namesto da ga prepiše.
2>> Ime datoteke
Standardna napaka vseh ukazov v plinovodu se preusmeri v datoteko z imenom Ime datoteke , ki mu prinaša, namesto da ga prepiše.
>>& Ime datoteke
Običajni izhod iz zadnjega ukaza in standardna napaka iz vseh ukazov se preusmeri v datoteko z imenom Ime datoteke , ki mu prinaša, namesto da ga prepiše.
>@ fileId
FileId mora biti identifikator za odprto datoteko, kot je povratna vrednost prejšnjega klicaodprto. Standardni izhod iz zadnjega ukaza je preusmerjen na fileId datoteko, ki je morala biti odprta za pisanje.
2>@ fileId
FileId mora biti identifikator za odprto datoteko, kot je povratna vrednost prejšnjega klicaodprto. Standardna napaka vseh ukazov v plinovodu je preusmerjena na fileId datoteko. Datoteka mora biti odprta za pisanje.
>&@ fileId
FileId mora biti identifikator za odprto datoteko, kot je povratna vrednost prejšnjega klicaodprto. Tako standardni izhod iz zadnjega ukaza kot standardna napaka iz vseh ukazov se preusmeri na fileId datoteko. Datoteka mora biti odprta za pisanje.
Če standardni izhod ni bil preusmerjen, potemexec ukaz vrne standardni izhod iz zadnjega ukaza v plinovodu. Če katerikoli od ukazov v cevovodu izstopi nenormalno ali pa se ubije ali začasno prekine, potemexec bo vrnila napako, sporočilo o napaki pa bo vključevalo izhod cevovoda, ki mu sledijo sporočila o napakah, ki opisujejo nenormalne zaključke; nanapačna koda spremenljivka vsebuje dodatne informacije o zadnjem nenormalnem zaključku. Če kateri koli od ukazov piše v svojo standardno datoteko napak in ta standardna napaka ni preusmerjena, potemexec vrne napako; sporočilo o napaki bo vključevalo standardni izhod plinovoda, ki mu sledijo sporočila o nenormalnih zaključkih (če obstajajo), sledi standardni izhod napake.
Če je zadnji znak rezultata ali sporočila o napaki nova linija, se ta znak običajno izbriše iz sporočila o rezultatu ali sporočilu o napaki. To je v skladu z drugimi vrednostmi Tcl, ki se običajno ne končajo z novimi vrsticami. Vendar, če-seepnewline je določena, potem se zadrži nova linija.
Če standardni vhod ni preusmerjen z ,, <'' ali `` `` `` `` `` `` `, se standardni vhod za prvi ukaz v cevovodu vzame iz trenutnega standardnega vhoda aplikacije.
Če je zadnji arg je `` & '', nato se plinovod izvede v ozadju. V tem primeru jeexecukaz vrne seznam, katerega elementi so identifikatorji procesa za vse podprocese v plinovodu.Standardni izhod iz zadnjega ukaza v plinovodu bo prešel na standardni izhod aplikacije, če ni bil preusmerjen, izhodna napaka iz vseh ukazov v cevovodu pa bo prešla v standardno datoteko napake aplikacije, razen če se preusmeri.
Prva beseda v vsakem ukazu je vzeta kot ime ukaza; Tilde-substitucija se izvaja na njej, in če rezultat ne vsebuje poševnic, potem imeniki v okoljski spremenljivki PATH iščejo izvedljivo ime. Če ime vsebuje poševnico, se mora nanašati na izvedljivo datoteko, ki jo je mogoče doseči iz trenutnega imenika. Razširitve `` glob '' ali druge lupinske podobne substitucije se izvajajo na argumentih za ukaze.
Prenosna vprašanja
Windows (vse različice)
Branje ali pisanje v vtičnico, z uporabo "@ fileId '' notacija, ne deluje. Pri branju iz vtičnice se bo 16-bitna DOS aplikacija obesila in 32-bitna aplikacija takoj vrne s končnim datoteko. Ko katera koli vrsta aplikacije piše v vtičnico, se informacije namesto tega pošljejo v konzolo, če je prisotna ali je zavržena.
Vmesnik za besedilo konzole Tk ne zagotavlja pravih standardnih zmogljivosti IO. Pri Tk pri preusmerjanju s standardnega vhoda bodo vse aplikacije videli takojšen zaključek datoteke; informacije, preusmerjene na standardni izhod ali standardne napake, bodo zavržene.
Sprednje ali zadnje poševnice so sprejete kot ločila poti za argumente do ukazov Tcl. Pri izvedbi aplikacije lahko ime poti, ki je določeno za aplikacijo, vsebuje tudi poševnice naprej ali nazaj kot ločilnike poti. Vendar upoštevajte, da večina programov Windows sprejema argumente s poševnimi črkami le kot ločilo možnosti in poševnice le v poteh. Vsi argumenti za aplikacijo, ki določajo ime poti s poševnimi črkami, ne bodo samodejno pretvorjeni, da bi lahko uporabili znak črte. Če argument vsebuje poševnice naprej kot ločilo poti, se lahko ali ne bo priznal kot ime poti, odvisno od programa.
Poleg tega morajo pri klicanju 16-bitne DOS ali Windows 3.X aplikacije vsa imena poti uporabiti kratko, šifrirano obliko poti (npr. Z uporabo »applba ~ 1.def« namesto »applbakery.default« ).
Dve ali več poševnic naprej ali nazaj v vrsti na poti se nanaša na omrežno pot. Na primer, preprosta združitev korenskega imenikac: / s podimenikom/ windows / sistem bo prineslac: // windows / sistem (dve črtasti skupaj), ki se nanaša na točko vgradnje, ki se imenujesistem na stroju, imenovanemokna (inc: / se zanemari) in ni enakovrednac: / windows / sistem, ki opisuje imenik na trenutnem računalniku. These pridruži ukaz bi morali uporabiti za združevanje komponent poti.
Windows NT
Ko poskušate izvesti aplikacijo,exec najprej išče ime, kot je bilo določeno. Potem,.com, .exe, in.netopir se dodajo na konec določenega imena in iščejo daljše ime. Če ime imenika ni bilo podano kot del imena aplikacije, se samodejno iščejo naslednji imeniki, ko poskušate poiskati aplikacijo:
Imenik, iz katerega je bila naložena izvedljiva Tcl.Trenutni imenik.32-bitni imenik sistema Windows NT.Sistemski imenik sistema Windows NT 16-bitni.Domači imenik Windows NT.Imeniki, navedeni na poti. Da bi lahko izvajali ukaze, ki so bile zgrajene v lupini, kot sodir inkopirati, mora klicatelj pripraviti ``cmd.exe / c'' do želenega ukaza. Windows 95 Ko poskušate izvesti aplikacijo,exec najprej išče ime, kot je bilo določeno. Potem,.com, .exe, in.netopir se dodajo na konec določenega imena in iščejo daljše ime. Če ime imenika ni bilo podano kot del imena aplikacije, se samodejno iščejo naslednji imeniki, ko poskušate poiskati aplikacijo: Imenik, iz katerega je bila naložena izvedljiva Tcl.Trenutni imenik.Sistemski imenik sistema Windows 95.Domači imenik Windows 95.Imeniki, navedeni na poti. Da bi lahko izvajali ukaze, ki so bile zgrajene v lupini, kot sodir inkopirati, mora klicatelj pripraviti ``command.com / c'' do želenega ukaza. Ko 16-bitna DOS-aplikacija bere standardni vhod iz konzole in nato zapusti, bodo vsi naknadno zagnani 16-bitni DOS-programi videli standardni vhod kot že zaprt. 32-bitne aplikacije nimajo te težave in bodo delovale pravilno, tudi če 16-bitna aplikacija DOS meni, da je standardni vhod zaprt. Za to napako trenutno ni znana rešitev. Preusmeritev medNUL: naprava in 16-bitna aplikacija ne deluje vedno. Pri preusmerjanju izNUL:, lahko nekatere aplikacije visijo, drugi bodo dobili neskončni tok "0x01" bytov in nekateri bodo dejansko pravilno dobili takojšen zaključek datoteke; Zdi se, da je vedenje odvisno od tega, kaj se je zbralo v sami aplikaciji. Pri preusmeritvi več kot 4K ali takoNUL:, bodo nekatere aplikacije obesile. Te težave se ne zgodijo s 32-bitnimi aplikacijami. Vse DOS 16-bitne aplikacije se izvajajo sinhrono. Vsi standardni vhodi iz cevi v 16-bitno DOS-aplikacijo se zbirajo v začasno datoteko; drugi konec cevi je treba zapreti, preden se 16-bitna DOS aplikacija začne izvajati.Vsi standardni izhodi ali napake iz 16-bitne DOS aplikacije na cev se zbirajo v začasne datoteke; mora prijava prenehati, preden se začasne datoteke preusmerijo na naslednjo stopnjo plinovoda. To je posledica rešitve za napako v operacijskem sistemu Windows 95 pri izvajanju cevi, in sicer, kako standardna lupina Windows 95 DOS deluje s samimi cevmi. Nekatere aplikacije, na primercommand.com, se ne sme izvajati interaktivno. Aplikacije, ki neposredno dostopajo do okna konzole in ne odčitajo od standardnega vnosa in pisanja do standardnega izhoda, ne morejo, obesiti Tcl ali celo obesiti sistem, če jim njihova zasebna konzola ni na voljo. Macintosh Theexec ukaz ni izveden in ne obstaja pod Macintosh. Unix Theexec ukaz je popolnoma funkcionalen in deluje, kot je opisano. napaka (n), odprta (n) izvedba, plinovod, preusmeritev, podproces Pomembno: Uporabi človek ukaz ( % človek ), da vidite, kako se na vašem računalniku uporablja ukaz. Poglej tudi
Ključne besede













