Skip to main content

Linux - Unix Command: exec

Basic Unix Commands (Juni 2026)

Basic Unix Commands (Juni 2026)
Anonim

exec - Invoke delprosess (er)

Synopsis

exec? brytere ? arg ? arg … ?

Beskrivelse

Denne kommandoen behandler sine argumenter som spesifikasjon av en eller flere delprosesser for å utføre. Argumentene er i form av en standard skalrørledning hvor hver arg blir et ord av en kommando, og hver distinkt kommando blir en delprosess.

Hvis de første argumentene tilexec starte med- så blir de behandlet som kommandolinjebrytere og er ikke en del av rørspesifikasjonen. Følgende brytere støttes for øyeblikket:

-keepnewline

Beholder en etterfølgende ny linje i rørledningenes utgang. Normalt slettes en etterfølgende ny linje.

--

Merker slutten på brytere. Argumentet som følger denne blir behandlet som det første arg selv om det starter med a-.

Hvis en arg (eller par av arg 's) har en av skjemaene beskrevet nedenfor, og den brukes avexec å kontrollere strømmen av inngang og utgang mellom delprosessen (e). Slike argumenter vil ikke bli overført til delprosessen. I former som `` < filnavn '' filnavn kan enten være i et eget argument fra `` <'' eller i samme argument uten mellomliggende mellomrom (dvs. `` < filnavn '').

|

Separerer forskjellige kommandoer i rørledningen. Standardutgangen til den foregående kommandoen blir pipet inn i standardinngangen til neste kommando.

|&

Separerer forskjellige kommandoer i rørledningen. Både standardutgang og standardfeil for foregående kommando blir pipet inn i standardinngangen til neste kommando. Denne form for omdirigering overstyrer former som 2> og> &.

< filnavn

Filen heter av filnavn åpnes og brukes som standardinngang for den første kommandoen i rørledningen.

<@ mappeID

mappeID må være identifikatoren for en åpen fil, for eksempel returverdi fra en tidligere samtale tilåpen. Den brukes som standardinngang for den første kommandoen i rørledningen. mappeID må ha blitt åpnet for lesing.

<< verdi

Verdi blir sendt til den første kommandoen som standardinngang.

> filnavn

Standardutgang fra den siste kommandoen blir omdirigert til filen som heter filnavn , overskriver det forrige innholdet.

2> filnavn

Standardfeil fra alle kommandoer i rørledningen omdirigeres til filen som heter filnavn , overskriver det forrige innholdet.

>& filnavn

Både standardutgang fra den siste kommandoen og standardfeilen fra alle kommandoer blir omdirigert til filen som heter filnavn , overskriver det forrige innholdet.

>> filnavn

Standardutgang fra den siste kommandoen blir omdirigert til filen som heter filnavn , legger til det i stedet for å overskrive det.

2>> filnavn

Standardfeil fra alle kommandoer i rørledningen omdirigeres til filen som heter filnavn , legger til det i stedet for å overskrive det.

>>& filnavn

Både standardutgang fra den siste kommandoen og standardfeilen fra alle kommandoer blir omdirigert til filen som heter filnavn , legger til det i stedet for å overskrive det.

>@ mappeID

mappeID må være identifikatoren for en åpen fil, for eksempel returverdi fra en tidligere samtale tilåpen. Standardutgang fra den siste kommandoen blir omdirigert til mappeID s fil, som må ha blitt åpnet for skriving.

2>@ mappeID

mappeID må være identifikatoren for en åpen fil, for eksempel returverdi fra en tidligere samtale tilåpen. Standardfeil fra alle kommandoer i rørledningen omdirigeres til mappeID s fil. Filen må ha blitt åpnet for skriving.

>&@ mappeID

mappeID må være identifikatoren for en åpen fil, for eksempel returverdi fra en tidligere samtale tilåpen. Både standardutgang fra siste kommando og standardfeil fra alle kommandoer blir omdirigert til mappeID s fil. Filen må ha blitt åpnet for skriving.

Hvis standard utgang ikke er omdirigert, så vilexec Kommandoen returnerer standardutgangen fra den siste kommandoen i rørledningen. Hvis noen av kommandoene i rørledningen avviker unormalt eller blir drept eller suspendert, såexec vil returnere en feil, og feilmeldingen vil inkludere rørledningens utgang fulgt av feilmeldinger som beskriver unormale avslutninger; defeil kode variabel vil inneholde tilleggsinformasjon om den siste unormale oppsigelsen. Hvis noen av kommandoene skriver til sin standardfeilfil, og at standardfeilen ikke omdirigeres, daexec vil returnere en feil; Feilmeldingen vil inkludere rørledningens standardutgang, etterfulgt av meldinger om unormale avslutninger (hvis noen), etterfulgt av standard feilutgang.

Hvis den siste karakteren til resultatet eller feilmeldingen er en ny linje, blir den karakteren normalt slettet fra resultatet eller feilmeldingen. Dette er i samsvar med andre TCL-returverdier, som normalt ikke slutter med nye linjer. Men hvis-keepnewline er spesifisert, så blir den etterfølgende nylinjen beholdt.

Hvis standardinngangen ikke omdirigeres med `` <'' eller `` << '' eller `` <@ '', blir standardinngangen for den første kommandoen i rørledningen hentet fra programmets nåværende standardinngang.

Hvis den siste arg er `` & '' så blir rørledningen utført i bakgrunnen. I dette tilfelletexeckommandoen vil returnere en liste hvis elementer er prosessidentifikatorene for alle delprosessene i rørledningen.Standardutgangen fra den siste kommandoen i rørledningen går til programmets standardutgang hvis den ikke er omdirigert, og feilutgang fra alle kommandoene i rørledningen går til programmets standard feilfil med mindre omdirigert.

Det første ordet i hver kommando blir tatt som kommandoenavnet; Tilde-substitusjon utføres på den, og hvis resultatet ikke inneholder noen skråstreker, søkes katalogene i PATH miljøvariabelen for en kjørbar av det oppgitte navnet. Hvis navnet inneholder et skråstrek, må det referere til en kjørbar tilgjengelig fra gjeldende katalog. Ingen `` glob''-utvidelse eller andre skalllignende substitusjoner utføres på argumenter til kommandoer.

Portabilitetsproblemer

Windows (alle versjoner)

Leser fra eller skriver til en stikkontakt, ved hjelp av ``@ mappeID '' notasjon, virker ikke. Når du leser fra en stikkontakt, vil en 16-bit DOS-applikasjon henge og en 32-biters applikasjon vil returnere umiddelbart med slutten av filen. Når en type søknad skriver til en stikkontakt, sendes informasjonen i stedet til konsollen, hvis en er til stede, eller blir kassert.

Tekst-widgeten for Tk-konsollen gir ikke ekte standard IO-muligheter. Under Tk, når omdirigering fra standardinngang, vil alle applikasjoner se en umiddelbar slutt-fil; informasjon omdirigert til standard utgang eller standard feil vil bli kassert.

Enten forover eller bakover skråstreker aksepteres som stilseparatorer for argumenter til Tcl-kommandoer. Når du kjører et program, kan banenavnet som er spesifisert for programmet, også inneholde skråstreker fremover eller bakover som stilseparatorer. Vær imidlertid oppmerksom på at de fleste Windows-programmer aksepterer argumenter med fremoverstreker bare som opsjonsbegrensninger og tilbakeslag bare i stier. Eventuelle argumenter til et program som angir et stinavn med fremoverstreker, blir ikke automatisk konvertert for å bruke tilbakestrekstegnet. Hvis et argument inneholder fremre skråstreker som stilseparatoren, kan det eller ikke bli anerkjent som et stinavn, avhengig av programmet.

I tillegg, når du ringer en 16-bits DOS- eller Windows 3.X-applikasjon, må alle stinavnene bruke det korte kryptiske stiformatet (f.eks. Ved å bruke `` applba ~ 1.def '' i stedet for `` applbakery.default '' ).

To eller flere fremover eller bakover skråstreker på rad i en sti refererer til en nettverksbane. For eksempel, en enkel sammenkobling av rotkatalogenc: / med en underkatalog/ Windows / system vil gic: // windows / system (to skråstreker sammen), som refererer til monteringspunktet som kallessystem på maskinen kaltvinduer (ogc: / er ignorert), og er ikke ekvivalent medc: / windows / system, som beskriver en katalog på gjeldende datamaskin. Defil bli med kommandoen bør brukes til å sammenkoble sti komponenter.

Windows NT

Når du forsøker å utføre et program,exec søker først etter navnet som det ble oppgitt. Da, i rekkefølge,.com, .exe, og.flaggermus er vedlagt til slutten av det angitte navnet, og det søker etter det lengre navnet. Hvis et katalognavn ikke ble oppgitt som en del av søknadsnavnet, blir følgende kataloger automatisk søkt i rekkefølge når du forsøker å finne programmet:

Katalogen der Tcl eksekverbar ble lastet.Den nåværende katalogen.Windows NT 32-biters systemkatalog.Windows NT 16-bits systemkatalogen.Windows NT-hjemmekatalogen.Katalogene som er oppført i banen.

For å kunne utføre skallet innebygde kommandoer somdir ogkopiere, den som ringer må legge inn ``cmd.exe / c'' til ønsket kommando.

Windows 95

Når du forsøker å utføre et program,exec søker først etter navnet som det ble oppgitt. Da, i rekkefølge,.com, .exe, og.flaggermus er vedlagt til slutten av det angitte navnet, og det søker etter det lengre navnet. Hvis et katalognavn ikke ble oppgitt som en del av søknadsnavnet, blir følgende kataloger automatisk søkt i rekkefølge når du forsøker å finne programmet:

Katalogen der Tcl eksekverbar ble lastet.Den nåværende katalogen.Windows 95-systemkatalogen.Windows 95-hjemmekatalogen.Katalogene som er oppført i banen.

For å kunne utføre skallet innebygde kommandoer somdir ogkopiere, den som ringer må legge inn ``command.com / c'' til ønsket kommando.

Når en 16-bits DOS-applikasjon har lest standardinngang fra en konsoll og deretter avsluttes, vil alle senere kjørbare 16-bits DOS-applikasjoner se standardinngangen som allerede stengt. 32-biters applikasjoner har ikke dette problemet og vil kjøre riktig, selv etter at en 16-bits DOS-applikasjon mener at standardinngangen er stengt. Det er ingen kjent løsning for denne feilen på dette tidspunktet.

Omdirigering mellomNUL: enhet og en 16-bits applikasjon fungerer ikke alltid. Når omdirigering fraNUL:, noen programmer kan henge, andre vil få en uendelig strøm av `` 0x01''byte, og noen vil faktisk få en umiddelbar slutt-fil; atferden synes å stole på noe som er samlet inn i selve søknaden. Når viderekobling større enn 4K eller så tilNUL:, noen programmer vil henge. Ovennevnte problemer skjer ikke med 32-biters applikasjoner.

Alle DOS 16-biters applikasjoner kjøres synkront. All standardinngang fra et rør til en 16-bit DOS-applikasjon samles inn i en midlertidig fil; Den andre enden av røret må være stengt før 16-bits DOS-applikasjonen begynner å utføres.All standard utgang eller feil fra en 16-bit DOS-applikasjon til et rør samles inn i midlertidige filer; søknaden må avsluttes før de midlertidige filene blir omdirigert til neste fase av rørledningen. Dette skyldes en løsning for en Windows 95-feil i implementeringen av rør, og er hvordan det vanlige Windows 95 DOS-skalet håndterer rørene selv.

Visse applikasjoner, for eksempelcommand.com, bør ikke utføres interaktivt. Programmer som direkte får tilgang til konsollvinduet, i stedet for å lese fra standardinngangen og skrive til deres standardutgang, kan mislykkes, henge Tcl, eller til og med henge systemet hvis deres eget private konsollvindu ikke er tilgjengelig for dem.

Macintosh

Deexec kommandoen er ikke implementert og eksisterer ikke under Macintosh.

Unix

Deexec kommandoen er fullt funksjonell og fungerer som beskrevet.

Se også

feil (n), åpen (n)

nøkkelord

utføre, rørledning, omdirigering, delprosess

Viktig: Bruke Mann kommando ( % Mann ) for å se hvordan en kommando brukes på din datamaskin.