exec - podnesite podproces (e)
Sinopsis
exec? prekidači ? arg ? arg … ?
Opis
Ova naredba tretira svoje argumente kao specifikaciju jednog ili više podprocesa za izvršavanje. Argumenti se u obliku standardnog plinovoda, gdje svaki arg postaje jedna riječ naredbe, a svaka zasebna naredba postaje podproces.
Ako su početni argumenti zaexec početi sa- onda se tretiraju kao komandne linije i nisu dio specifikacije cjevovoda. Trenutno su podržane sljedeće preklopke:
-keepnewline
Zadržava novu liniju koja slijedi u izvedbi cjevovoda. Obično će se izbrisati novi redak koji slijedi.
--
Označava kraj prekidača. Argument koji slijedi ovaj će biti tretiran kao prvi arg čak i ako počinje s-.
Ako je arg (ili par arg 's) ima jedan od oblika koji su niže opisani, a koristi gaexec za kontrolu protoka ulaza i izlaza između podprocesa. Takvi argumenti neće se proslijediti na podproces (e). U obrascima kao što su `` < naziv datoteke '' naziv datoteke može biti ili u zasebnom argumentu iz `` <'' ili u istom argumentu bez intervencijskog prostora (tj. naziv datoteke '').
|
Odvoji različite naredbe u cjevovodima. Standardni izlaz prethodne naredbe bit će cijevni u standardni ulaz sljedeće naredbe.
|&
Odvoji različite naredbe u cjevovodima. Standardni izlaz i standardna pogreška prethodne naredbe bit će uključeni u standardni ulaz sljedeće naredbe. Ovaj oblik preusmjeravanja nadjačava oblike poput 2> i> &.
< naziv datoteke
Datoteka koju je imenovao naziv datoteke otvara se i koristi se kao standardni unos za prvu naredbu u cjevovodima.
<@ fileId
FileId mora biti identifikator otvorene datoteke, kao što je povratna vrijednost iz prethodnog poziva naotvorena, Koristi se kao standardni unos za prvu naredbu u cjevovodima. FileId mora biti otvoren za čitanje.
<< vrijednost
Vrijednost prenosi se na prvu naredbu kao standardni unos.
> naziv datoteke
Standardni izlaz iz zadnje naredbe preusmjerava se na datoteku s imenom naziv datoteke , prepisujući prethodne sadržaje.
2> naziv datoteke
Standardna pogreška svih naredbi u cjevovodima preusmjerena je na datoteku s imenom naziv datoteke , prepisujući prethodne sadržaje.
>& naziv datoteke
Standardni izlaz iz zadnje naredbe i standardne pogreške iz svih naredbi preusmjeravaju se na imenovanu datoteku naziv datoteke , prepisujući prethodne sadržaje.
>> naziv datoteke
Standardni izlaz iz zadnje naredbe preusmjerava se na datoteku s imenom naziv datoteke , dodavši mu se umjesto da ga prebrisati.
2>> naziv datoteke
Standardna pogreška svih naredbi u cjevovodima preusmjerena je na datoteku s imenom naziv datoteke , dodavši mu se umjesto da ga prebrisati.
>>& naziv datoteke
Standardni izlaz iz zadnje naredbe i standardne pogreške iz svih naredbi preusmjeravaju se na imenovanu datoteku naziv datoteke , dodavši mu se umjesto da ga prebrisati.
>@ fileId
FileId mora biti identifikator otvorene datoteke, kao što je povratna vrijednost iz prethodnog poziva naotvorena, Standardni izlaz iz posljednje naredbe preusmjeren je na fileId koja je vjerojatno otvorena za pisanje.
2>@ fileId
FileId mora biti identifikator otvorene datoteke, kao što je povratna vrijednost iz prethodnog poziva naotvorena, Standardna pogreška svih naredbi u cjevovodima preusmjerena je na fileId datoteku. Datoteka mora biti otvorena za pisanje.
>&@ fileId
FileId mora biti identifikator otvorene datoteke, kao što je povratna vrijednost iz prethodnog poziva naotvorena, Standardni izlaz iz posljednje naredbe i standardna pogreška iz svih naredbi preusmjeravaju se na fileId datoteku. Datoteka mora biti otvorena za pisanje.
Ako standardni izlaz nije preusmjeren ondaexec naredba vraća standardni izlaz iz posljednje naredbe u cjevovod. Ako bilo koja od naredbi u cjevovodu izlazi nenormalno ili se ubiju ili obustave, tadaexec vratit će se pogreška i poruka o pogrešci uključivat će izlaz cjevovoda nakon kojeg slijedi poruka o pogrešci koja opisuje abnormalne prekide;kod pogreške varijabla će sadržavati dodatne informacije o posljednjem nenormalnom otkazu. Ako bilo koja od naredbi piše u svoju standardnu datoteku pogreške i da standardna pogreška nije preusmjerena, ondaexec vratit će pogrešku; poruka o pogrešci će uključivati standardni izlaz cjevovoda, nakon čega slijedi poruka o abnormalnim ukidanjima (ako ih ima), nakon čega slijedi standardna izlazna pogreška.
Ako zadnji znak rezultata ili poruke o pogrešci predstavlja novu liniju, taj se znak obično briše iz rezultata ili poruke o pogrešci. Ovo je u skladu s ostalim Tcl povratnim vrijednostima, koje obično ne završavaju novim linijama. Međutim, ako-keepnewline naveden je novi retresni redak koji se zadržava.
Ako standardni unos nije preusmjeren s `` <'' ili `` << '' ili `` <@ '' onda standardni unos za prvu naredbu u cjevovodu preuzima se od trenutnog standardnog unosa aplikacije.
Ako je posljednji arg je `` & '' tada će cjevovod biti izvršen u pozadini. U ovom slučajuexecnaredba će vratiti popis čiji su elementi identifikatori procesa za sve podprocese u cjevovodima.Standardni izlaz iz posljednje naredbe u cjevovodima idu na standardni izlaz aplikacije ako nije preusmjeren, a izlazne pogreške iz svih naredbi u cjevovodima idu na standardnu datoteku pogreške programa, osim ako se ne preusmjeri.
Prva riječ u svakoj naredbi uzima se kao naziv naredbe; tilde-substitution se izvodi na njemu, a ako rezultat ne sadrži kose, onda se direktori u varijabli okruženja PATH traže izvršnu datoteku prema zadanom imenu. Ako ime sadrži prorez, mora se odnositi na izvršnu datoteku koja se može dosegnuti iz trenutnog direktorija. Nema šifranata "` globa "ili drugih zamjena sličnih ljusci na argumente naredbi.
Problemi prenosivosti
Windows (sve inačice)
Čitanje ili pisanje na utičnicu pomoću ``@ fileId '' notacija, ne radi. Kad čitate iz utičnice, 16-bitna DOS aplikacija će se objesiti i 32-bitna aplikacija odmah će se vratiti s krajnjim datotekama. Kada se bilo koja vrsta aplikacije piše na utičnicu, informacija se umjesto toga šalje na konzolu, ako je prisutna ili je odbacena.
Tk konzola tekstualni widget ne pruža stvarne standardne IO mogućnosti. U odjeljku Tk, kada preusmjeravate s standardnog unosa, svi će aplikacije vidjeti neposrednu završnicu datoteke; informacije preusmjerene na standardni izlaz ili standardnu pogrešku odbacit će se.
Koraci prema naprijed ili unatrag prihvaćaju se kao razdjeljivači polja za argumente za Tcl naredbe. Prilikom izvođenja aplikacije, naziv putanja koji je naveden za aplikaciju može sadržavati i kose prema naprijed ili unatrag kao razdjeljivače staze. Imajte na umu, međutim, da većina aplikacija sustava Windows prihvaća argumente s kosim krakovima samo kao opcije odstranjivača i povratne trake samo na putovima. Svaki argument za aplikaciju koji određuje naziv staze s kosom kose prema naprijed neće se automatski pretvoriti u upotrebu znaka za povratni unos. Ako argument sadrži koso prema naprijed kao razdjelni put, može se ili ne mora prepoznati kao naziv putanja, ovisno o programu.
Osim toga, kada zovete 16-bitnu DOS ili Windows 3.X aplikaciju, svi nazivi moraju upotrebljavati kratki, kriptski oblik puta (npr., Upotrijebiti "applba ~ 1.def" umjesto "applbakery.default" ).
Dvije ili više kosih crta unatrag ili unatrag u redu na putu odnose se na mrežni put. Na primjer, jednostavna povezanost korijenskog direktorijac: / s poddirektorijem/ Windows / sustav će dobitic: // Windows / sustav (dvije kose zajedno), što se odnosi na točku zaleta koja se zovesistem na stroju nazvanomprozori (ic: / se zanemaruje) i nije ekvivalentanc: / prozora / sustava, koji opisuje direktorij na trenutnom računalu.pridruživanje datoteke naredba treba koristiti za povezivanje komponenata staze.
Windows NT
Prilikom pokušaja izvođenja aplikacije,exec prvo traži ime kako je navedeno. Zatim, kako bi,.com, .exe, i.šišmiš dodaju se do kraja navedenog imena i traži dulje ime. Ako imenik direktorija nije naveden kao dio naziva aplikacije, automatski se pretražuju sljedeći direktori kako bi pokušali locirati aplikaciju:
Imenik iz kojeg je učitana Tcl izvršna datoteka.Trenutni direktorij.Windows NT 32-bitni direktorij sustava.Windows NT 16-bitni direktorij sustava.Windows NT početni direktorij.Imenici navedeni na putu. Da biste izvršili ljuske ugrađene naredbe poputdir ikopirati, pozivatelj mora dodati ``cmd.exe / c'' do željene naredbe. Windows 95 Prilikom pokušaja izvođenja aplikacije,exec prvo traži ime kako je navedeno. Zatim, kako bi,.com, .exe, i.šišmiš dodaju se do kraja navedenog imena i traži dulje ime. Ako imenik direktorija nije naveden kao dio naziva aplikacije, automatski se pretražuju sljedeći direktori kako bi pokušali locirati aplikaciju: Imenik iz kojeg je učitana Tcl izvršna datoteka.Trenutni direktorij.Imenik sustava Windows 95.Početna domena sustava Windows 95.Imenici navedeni na putu. Da biste izvršili ljuske ugrađene naredbe poputdir ikopirati, pozivatelj mora dodati ``command.com / c'' do željene naredbe. Jednom kad 16-bitna DOS aplikacija pročita standardni unos s konzole, a zatim se prekine, sve kasnije pokrenute 16-bitne DOS aplikacije vidjet će standardni unos kao već zatvoren. 32-bitne aplikacije nemaju ovaj problem i ispravno će se pokrenuti, čak i nakon što 16-bitna DOS aplikacija smatra da je standardni unos zatvoren. Trenutačno nema poznatih zaobilaznih rješenja za ovaj problem. Preusmjeravanje izmeđuNSK: uređaj i 16-bitna aplikacija ne rade uvijek. Pri preusmjeravanjuNSK:, neke se aplikacije mogu objesiti, drugi će dobiti beskonačni tok `0x01 'bajtova, a neki će zapravo ispravno dobiti neposrednu završetak datoteke; čini se da ponašanje ovisi o nečemu sastavljenom u samoj aplikaciji. Prilikom preusmjeravanja veće od 4K ili višeNSK:, neke će aplikacije objesiti. Gore navedeni problemi se ne događaju s 32-bitnim aplikacijama. Sve DOS 16-bitne aplikacije se pokreću sinkrono. Svi standardni ulazi iz cijevi na 16-bitnu DOS aplikaciju prikupljeni su u privremenu datoteku; drugi kraj cijevi mora biti zatvoren prije nego što 16-bitni DOS aplikacija počne izvršavati.Sve standardne izlazne ili pogreške iz 16-bitne DOS aplikacije na cijev prikupljaju se u privremene datoteke; aplikacija mora prekinuti prije nego što se privremene datoteke preusmjeravaju u sljedeću fazu cjevovoda. To je zbog zaobilaznog rješenja za bugove u sustavu Windows 95 u provedbi cijevi, a kako standardna Windows 95 DOS školjka upravlja samim cijevima. Određene aplikacije, kao što sucommand.com, ne smije se izvršavati interaktivno. Aplikacije koje izravno pristupaju prozoru konzole, a ne čitanje od standardnog unosa i pisanja na standardni izlaz mogu uspjeti, objesiti Tcl ili čak i objesiti sustav ako im nije dostupan vlastiti prozor privatne konzole. mekintoš exec naredba nije implementirana i ne postoji u sustavu Macintosh. Unix exec naredba je potpuno funkcionalna i radi kako je opisano. pogreška (n), otvorena (n) izvršiti, cjevovod, preusmjeravanje, podproces Važno: Koristiti čovjek naredba ( % čovjek ) kako biste vidjeli kako se naredba koristi na vašem računalu. Vidi također
ključne riječi




