Omdirigere stderr ved hjelp av tee -kommandoen i Ubuntu

Omdirigere stderr ved hjelp av tee -kommandoen i Ubuntu

Tee -kommandoen tar standardinngangen og sender den til en eller flere filer og standardutgangen. Tee-kommandoen er avledet fra røret T-splitter. Det bryter ganske enkelt ned et programs utdata slik at det kan vises og lagres i en fil. Den utfører begge jobbene samtidig, kopierer utdataene til de gitte filene eller variablene, og viser utgangen.

Syntaks:

$ tee [alternativer] [fil]

Alternativer:

  • -en: Legg til (i stedet for å overskrive filene, legg dem til de eksisterende)
  • -Jeg: ignorere avbrytelser (ignorere signalene som avbryter)

Filer: Det er flere filer. Utdataene er skrevet til hver av dem.

Standard filbeskrivelse for prosessen med å skrive feilmeldinger er stderr, ofte kjent som standardfeil. Standardfeil kan videresendes til kommandolinjen i bash. Denne artikkelen handler om å omdirigere utdataene fra Stderr ved hjelp av TEE -kommandoen i forskjellige scenarier.

Omdirigere stderr ved hjelp av tee -kommandoen

Standardfeil blir videresendt til kommandolinjen i bash. Omdirigere Stderr kan la deg fange feilmeldinger i en distinkt loggfil eller eliminere feilmeldingene helt. Vi vil forklare prosedyren for å omdirigere Stderr ved hjelp av tee -kommandoen med følgende eksempler.

Trinn 1: Opprett en bash -fil

Først må du lage en bash -fil “Linux.SH ”ved hjelp av følgende kommando:

$ Nano Linux.sh

Trinn 2: Skriv koden

Skriv nå følgende kode i filen, eller du kan skrive noe annet i henhold til kravet ditt:

$ #!/bin/bash
ekko hei
1> & 2 Echo World

Trinn 3: Sjekk om bash -filen fungerer

Nå, sjekk om bash -filen fungerer som den skal, eller om koden som er skrevet i den er riktig ved å kjøre følgende kommando i terminalen:

$ ./Linux.sh

Det gitte utfallet sender ut det riktige resultatet, som beviser at koden fungerer som den skal.

Kjør en annen kommando nevnt nedenfor for å sjekke arbeidskoden:

$ ./Linux.sh>/dev/null

Kjør nå følgende kommando for å sjekke koden:

$ ./Linux.sh 2>/dev/null

Vi fikk forventet produksjon; det betyr at koden er riktig.

Trinn 4: Omdirigere stderr til tee -kommandoen

> (…) (Prosessstatning) etablerer en FIFO og gjør den tilgjengelig for tee for å lytte. Deretter bruker den> (File Redirection) for å sende kommandoens stdout til FIFO som din første tee overvåker.

Følgende kommando omdirigerer stderr til tee. Den omdirigerer utdataene til “/tmp/log”:

$ ./Linux.sh 2 >> (tee /tmp /log)

Nå, send inn filen vi omdirigerte utdataene i.

$ katt /tmp /log

Som standard skriver tee utskrifter til stdout. Skriv ut dette til stderr.

$ (./Linux.sh 2 >> (tee/tmp/log> & 2))>/dev/null

Konklusjon

Tee -kommandoen leser dataene fra en inndatafil/filer og skriver den mottatte utdataene til mange filer. Omdirigering av feil til stderr kan gjøres ved hjelp av tee -kommandoen. Det er mange måter å omdirigere utdataene på. Men i denne artikkelen beskrev vi en prosedyre, ved hjelp av et eksempel, for å omdirigere Stderr til tee ved hjelp av en bash -fil og viste utdataene på Ubuntu (Linux -operativsystem). Du vil finne denne artikkelen nyttig i å omdirigere Stderr ved hjelp av tee -kommandoen.