exec - Kutsu osaprosessi (t)
tiivistelmä
Exec? kytkimet ? arg ? arg … ?
Kuvaus
Tämä komento käsittelee argumenttejaan yhden tai useamman osaprosessin määrittelyä varten. Argumentit ovat muodoltaan standardi kuori putki, jossa kukin arg tulee komennon yksi sana, ja jokainen erillinen komento muuttuu osaprosessiksi.
Jos alkuperäiset argumentitExec Aloita- niitä käsitellään komentorivivalitsimina eivätkä ole osa putkilinjan määritystä. Seuraavia kytkimiä tuetaan tällä hetkellä:
-keepnewline
Säilyttää jälkikäteen uuden rivin putkilinjan tuotoksessa. Tavallisesti jäljessä oleva uusi rivi poistetaan.
--
Merkitsee kytkimien loppumisen. Tätä seuraava argumentti käsitellään ensimmäisenä arg vaikka se alkaakin-.
Jos arg (tai paria arg 's) on yksi jäljempänä kuvatuista lomakkeista, sen jälkeen sitä käytetäänExec ohjaamaan sisääntulon ja lähdön virtausta aliprosessien (os) välillä. Tällaisia argumentteja ei siirretä osaprosesseihin. Lomakkeissa, kuten `` < Tiedoston nimi '' Tiedoston nimi voi olla joko erillinen argumentti `` <'' tai samassa argumentissa ilman välitilaa (eli `` < Tiedoston nimi '').
|
Erottaa erilliset komennot putkessa. Edellisen komennon standardilähde syötetään seuraavan komennon vakiotuloon.
|&
Erottaa erilliset komennot putkessa. Edellisen komennon vakiotuloste ja vakiovirhe johdetaan seuraavan komennon vakiotuloon. Tämä uudelleenohjauksen muoto ohittaa muodot, kuten 2> ja> &.
< Tiedoston nimi
Tiedoston nimi Tiedoston nimi avautuu ja sitä käytetään vakiotulona putkilinjan ensimmäiselle komennolle.
<@ fileId
FileId on oltava avoimen tiedoston tunniste, kuten edellisen puhelun palautusarvoavata. Sitä käytetään vakiotulona putkilinjan ensimmäiselle komennolle. FileId on oltava avattu lukemiseen.
<< arvo
Arvo siirretään ensimmäisen komennon vakiotuloksi.
> Tiedoston nimi
Viimeisen komennon vakiotuloste ohjataan nimettyyn tiedostoon Tiedoston nimi , joka korvaa aiemman sisällön.
2> Tiedoston nimi
Kaikkien putkilinjan komentojen standardivirhe ohjataan nimettyyn tiedostoon Tiedoston nimi , joka korvaa aiemman sisällön.
>& Tiedoston nimi
Sekä komennon viimeisen komennon standardimuoto ja vakiovirhe ohjataan nimettyyn tiedostoon Tiedoston nimi , joka korvaa aiemman sisällön.
>> Tiedoston nimi
Viimeisen komennon vakiotuloste ohjataan nimettyyn tiedostoon Tiedoston nimi , liittää siihen sen sijaan, että se korvaa sen.
2>> Tiedoston nimi
Kaikkien putkilinjan komentojen standardivirhe ohjataan nimettyyn tiedostoon Tiedoston nimi , liittää siihen sen sijaan, että se korvaa sen.
>>& Tiedoston nimi
Sekä komennon viimeisen komennon standardimuoto ja vakiovirhe ohjataan nimettyyn tiedostoon Tiedoston nimi , liittää siihen sen sijaan, että se korvaa sen.
>@ fileId
FileId on oltava avoimen tiedoston tunniste, kuten edellisen puhelun palautusarvoavata. Viimeisen komennon standardilähtö ohjataan uudelleen fileId joka on avattu kirjallisesti.
2>@ fileId
FileId on oltava avoimen tiedoston tunniste, kuten edellisen puhelun palautusarvoavata. Kaikkien putkilinjan komentojen standardivirhe ohjataan uudelleen fileId tiedosto. Tiedosto on avattava kirjallisesti.
>&@ fileId
FileId on oltava avoimen tiedoston tunniste, kuten edellisen puhelun palautusarvoavata. Molempien komentojen viimeisen komennon ja standardivirheen standardilähtö ohjataan uudelleen fileId tiedosto. Tiedosto on avattava kirjallisesti.
Jos vakiotulostusta ei ole ohjattu, niinExec komento palauttaa standardin tuoton putkilinjan viimeisestä komennosta. Jos jokin komentokehoteista poistuu epänormaalisti tai tapetaan tai keskeytetään sittenExec palauttaa virheen ja virheilmoitus sisältää putken tuotoksen ja sen jälkeen virheilmoitukset, jotka kuvaavat epänormaaleja päätteitä;virhekoodi muuttuja sisältää lisätietoa viimeisestä epänormaalista lopettamisesta. Jos jokin komennuksista kirjoittaa standardivirhetiedostoonsa ja että standardivirhe ei ohjata, niinExec palauttaa virheen; virheviesti sisältää putkilinjan vakiotuloksen, jota seuraa epänormaaleja päätteitä koskevia viestejä (jos sellaisia on), jota seuraa standardivirhe.
Jos tuloksen tai virhesanoman viimeinen merkki on uusi rivinvaihto, merkki poistuu normaalisti tulos- tai virhesanomasta. Tämä on yhdenmukainen muiden Tcl-palautusarvojen kanssa, jotka eivät tavallisesti päädy uudelle riville. Jos kuitenkin-keepnewline on määritetty, jäljessä oleva uusiline säilyy.
Jos vakiotuloa ei ohjata `` <'' tai `` << '' tai `` <@ '', sitten putkilinjan ensimmäisen komennon vakiotulo otetaan sovelluksen nykyisestä vakiotulosta.
Jos viimeinen arg on `` & '' sitten putki suoritetaan taustalla. Tässä tapauksessaExeckomento palauttaa luettelon, jonka elementit ovat prosessin tunnisteet kaikille putkilinjan aliprosesseille.Standardin ulostulo putkilinjan viimeisestä komennosta siirtyy sovelluksen vakiotulokseen, jos sitä ei ole ohjattu, ja kaikkien putkilinjan komentoja koskevat virheet siirtyvät sovelluksen vakiovirhetiedostoon, jollei niitä ohjata uudelleen.
Kunkin komennon ensimmäinen sana otetaan komentojen nimeksi; tilde-substitution suoritetaan, ja jos tuloksessa ei ole viivoja, PATH-ympäristömuuttujan hakemistoja etsitään suoritettavan nimen mukaan. Jos nimessä on viiva, sen on viitattava nykyiseen hakemistoon tavoitettavissa olevaan suoritustiedostoon. Komennoilla ei ole mitään `` glob '' laajennusta tai muita kuorien kaltaisia korvauksia.
Siirrettävyysongelmat
Windows (kaikki versiot)
Lukeminen tai kirjoittaminen pistorasiaan käyttäen ``@ fileId '' merkintä, ei toimi. 16-bittinen DOS-sovellus riippuu kannesta, kun 32-bittinen sovellus palaa heti tiedoston loppuun. Kun jokin sovellusmuoto kirjoitetaan pistorasiaan, tiedot siirretään sen sijaan konsoliin, jos sellainen on läsnä tai hylätään.
Tk-konsolin tekstihakemisto ei tarjoa todellista standardin IO-ominaisuutta. Tk: ssa, kun ohjataan uudelleen vakiotulosta, kaikki sovellukset näkevät välittömän loppu-tiedoston; vakiolähdölle tai standardivirheelle ohjatut tiedot hylätään.
Joko taaksepäin tai taaksepäin olevat viivat hyväksytään reittierotuksiksi argumentteille Tcl-komennoille. Sovellusta suoritettaessa sovellukseen määritetty polun nimi voi sisältää myös eteen- tai taaksepäin olevia viivoja polun erottimina. Muista kuitenkin, että useimmat Windows-sovellukset hyväksyvät argumentteja, joissa on viivytysviivejä vain vaihtoehtorajoittajina ja vastavalikoina vain poluissa. Sovelluksen argumentit, jotka määrittävät polun nimen raja-arvojen välityksellä, ei automaattisesti muunneta käyttämään taaksepäin-merkkiä. Jos argumentti sisältää reittierottimen eteenpäin viivoittavia viivoja, se voidaan tunnistaa polun nimeksi ohjelmasta riippuen.
Lisäksi, kun soitat 16-bittistä DOS- tai Windows 3.X -ohjelmaa, kaikkien polunimien on käytettävä lyhyttä, salaavaa, polkuformaattia (esim. `Applba ~ 1.def ',` applbakery.default' ).
Reitillä peräkkäin kaksi tai useampia eteen- tai taakseja viivoja viittaa verkkopolkuun. Esimerkiksi juurihakemiston yksinkertainen ketjuttaminenC: / alihakemistolla/ Windows / järjestelmä tuottaaC: // windows / system (kaksi viivaa yhdessä), joka tarkoittaa kutsuttua kiinnityspistettäjärjestelmä koneella nimeltäikkunat (jaC: / ei huomioida), eikä se vastaa sitäC: / windows / system, joka kuvaa nykyisen tietokoneen hakemiston.tiedosto liittyä komentoa tulisi käyttää reitin komponenttien ketjuttamiseen.
Windows NT
Kun yrität suorittaa sovelluksen,Exec etsii ensin nimen nimenomaisesti. Sitten,.com, .exe, ja.bat lisätään määritetyn nimen loppuun ja etsii pidemmän nimen. Jos hakemiston nimeä ei ole määritetty osana sovelluksen nimeä, seuraavia hakemistoja etsitään automaattisesti, kun yrität etsiä sovelluksen:
Hakemisto, josta Tcl-suoritustiedosto ladattiin.Nykyinen hakemisto.Windows NT 32-bittinen järjestelmähakemisto.Windows NT: n 16-bittinen järjestelmähakemisto.Windows NT: n kotihakemisto.Polussa luetellut hakemistot. Jotta shell-sisäänrakennetut komennot voidaan suorittaa, kutendir jakopio, soittajan on esitettävä ``cmd.exe / c'' haluttuun komentoon. Windows 95 Kun yrität suorittaa sovelluksen,Exec etsii ensin nimen nimenomaisesti. Sitten,.com, .exe, ja.bat lisätään määritetyn nimen loppuun ja etsii pidemmän nimen. Jos hakemiston nimeä ei ole määritetty osana sovelluksen nimeä, seuraavia hakemistoja etsitään automaattisesti, kun yrität etsiä sovelluksen: Hakemisto, josta Tcl-suoritustiedosto ladattiin.Nykyinen hakemisto.Windows 95 -järjestelmänhakemisto.Windows 95-kotihakemisto.Polussa luetellut hakemistot. Jotta shell-sisäänrakennetut komennot voidaan suorittaa, kutendir jakopio, soittajan on esitettävä ``command.com / c'' haluttuun komentoon. Kun 16-bittinen DOS-sovellus on lukenut konsolista tavanomaisen syötteen ja sitten lopettaa, kaikki 16-bittiset DOS-sovellukset myöhemmin näyttävät vakiotulon jo suljettuna. 32-bittisissä sovelluksissa ei ole tätä ongelmaa, ja ne toimivat oikein, vaikka 16-bittinen DOS-sovellus ajattelisi, että standardi tulo on suljettu. Tällä bugilla ei ole tunnettua ongelmanratkaisua. UudelleenohjausNUL: laite ja 16-bittinen sovellus eivät aina toimi. Kun ohjataan uudelleenNUL:, jotkut sovellukset saattavat jumiutua, toiset saavat ääretön "0x01" tavut, ja jotkut todella oikein saavat välittömän loppu-tiedoston; käyttäytyminen näyttäisi olevan riippuvainen sovelluksesta itse laaditusta. Kun ohjataan yli 4 k tai enemmänNUL:, jotkut sovellukset jumittuvat. Edellä mainittuja ongelmia ei tapahdu 32-bittisten sovellusten kanssa. Kaikki 16-bittiset DOS-sovellukset suoritetaan synkronisesti. Kaikki standardi tulo putkesta 16-bittiseen DOS-sovellukseen kerätään väliaikaiseen tiedostoon; putken toinen pää on suljettava ennen 16-bittisen DOS-sovelluksen alkamista.Kaikki 16-bittisen DOS-sovelluksen vakiotulostus tai -virhe putkeen kerätään väliaikaisiin tiedostoihin; sovelluksen on päätyttävä ennen kuin väliaikaiset tiedostot ohjataan putkilinjan seuraavaan vaiheeseen. Tämä johtuu Windows 95 -virheen kiertotavasta putkien toteutuksessa ja siitä, miten standardi Windows 95 DOS -kuori käsittelee putket itse. Tietyt sovellukset, kutencommand.com, ei saa suorittaa interaktiivisesti. Sovellukset, jotka pääsevät suoraan konsoli-ikkunaan sen sijaan, että ne lukevat tavallisesta tulostaan ja kirjoitusstään vakiotulosteeseensa, saattavat epäonnistua, ripustaa Tcl: n tai jopa ripustaa järjestelmän, jos heidän oma konsolin ikkuna ei ole heille käytettävissä. kumisadetakkikangas Exec komentoa ei ole toteutettu eikä sitä ole Macintoshissa. unix Exec komento on täysin toimiva ja toimii kuten kuvattu. virhe (n), avoin (n) suorittaa, putki, uudelleenohjaus, osaprosessi Tärkeä: Käytä mies komento ( % mies ), miten komentoa käytetään tietyssä tietokoneessa. Katso myös
Avainsanat




