Slik omdirigerer du stderr til stdout i Bash

How Redirect Stderr Stdout Bash



Kommandoer i Linux tar litt input fra brukeren, som kan være en fil eller et hvilket som helst attributt, og når de kjøres, gir de noe output som kalles standard output. Standardutgangen kan være en suksessutgang eller en feilutgang; begge vil vises på terminalskjermen. Men i noen tilfeller vil du lagre standardutganger til en fil for testing eller feilsøking av koden. I Linux kan disse utgangene omdirigeres til en fil, og prosessen med å fange den kalles omdirigering.







Hver prosess I Linux produserer tre datastrømmer, stdin, stdout og stderr:



  • stdin : Tar input fra brukeren via tastaturet
  • stdout : Viser utdata på skjermen
  • stderr : Viser feilinformasjon på skjermen

Hver datastrøm har en numerisk ID:



Numerisk ID Navn
0 stdin
1 stdout
2 stderr

La oss forklare omdirigering litt mer med detaljer:





Hvordan omdirigere standardutgang og standardfeil i Bash:

For å omdirigere standardutgangen til kommandoen, bruker vi 1 med en omdirigeringsoperator som er større enn> -tegnet:

$ls 1>stdout.txt

Kommandoen ovenfor vil opprette en fil og plassere standardutgangen for ls -kommandoen i filen stdout.txt.



For å lese stdout.txt -filen, bruk:

$kattstdout.txt

Vi kan også omdirigere standardfeil til en fil ved å bruke kommandoen:

$kattmyfile.txt2>stderr.txt

For å se filen stderr.txt, bruk:

$kattstderr.txt

Sørg for at bruk 2 er større enn> -tegnet. Siden det ikke er noen myfile.txt -fil i katalogen, gir cat -kommandoen en feil som vil bli lagt til i filen stderr.txt.

Disse standardutgangene kan også omdirigeres med en enkelt kommando, bruk:

$ls 1>stdout.txt2>stderr.txt

Utdataene fra ls -kommandoen skrives i stdout.txt filen, men stderr.txt vil forbli tomt fordi det ikke ville være noen feil.

La oss gjøre nå for stderr.txt:

$kattmyfile.txt1>stdout.txt2>stderr.txt

Bruk kommandoen nedenfor for å lese stderr.txt.

$kattstderr.txt

Og selvfølgelig vil stdout.txt være tomt.

Konklusjon :

Linux -kommando ved utførelse gir standardutgang som kan være en suksessutgang eller en feilutgang. Vanligvis kan disse utgangene ikke omdirigeres med omdirigeringsoperatorer; vi må bruke spesifikke numeriske ID -er med> -tegnet. I denne veiledningen lærte vi hvordan du bruker disse talltastene til å omdirigere standardutdata til en fil med eksempler.