Sådan omdirigeres stderr til stdout i Bash

How Redirect Stderr Stdout Bash



Kommandoer i Linux tager noget input fra brugeren, hvilket kan være en fil eller en hvilken som helst attribut, og ved udførelse giver de noget output kaldet standardoutput. Standardoutput kan være en succesoutput eller en fejloutput; begge vil blive vist på din terminal skærm. Men i nogle tilfælde vil du gemme standardoutput til en fil til test eller fejlretning af koden. I Linux kan disse output omdirigeres til en fil, og processen med at fange den kaldes omdirigering.







Hver proces i Linux producerer tre datastrømme, stdin, stdout og stderr:



  • stdin : Tager input fra brugeren via tastatur
  • stdout : Viser output på skærmen
  • stderr : Viser fejloplysninger på skærmen

Hver datastrøm har et numerisk id:



Numerisk id Navn
0 stdin
1 stdout
2 stderr

Lad os forklare omdirigering lidt mere med detaljer:





Sådan omdirigeres standardoutput og standardfejl i Bash:

For at omdirigere kommandoens standardoutput bruger vi 1 med en omdirigeringsoperator, der er større end> ​​-tegnet:

$ls 1>stdout.txt

Ovenstående kommando opretter en fil og placerer standardoutput for ls -kommandoen i filen stdout.txt.



For at læse filen stdout.txt skal du bruge:

$katstdout.txt

Vi kan også omdirigere standardfejl til en fil ved hjælp af kommandoen:

$katmyfile.txt2>stderr.txt

For at se filen stderr.txt skal du bruge:

$katstderr.txt

Sørg for, at brug 2 er større end> ​​-tegnet. Da der ikke er nogen myfile.txt -fil i biblioteket, giver cat -kommandoen en fejl, der tilføjes i filen stderr.txt.

Disse standardudgange kan også omdirigeres med en enkelt kommando, brug:

$ls 1>stdout.txt2>stderr.txt

Outputtet af ls -kommandoen skrives i stdout.txt fil, men stderr.txt forbliver tom, fordi der ikke ville være nogen fejl.

Lad os nu gøre for stderr.txt:

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

Brug kommandoen nedenfor til at læse stderr.txt.

$katstderr.txt

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

Konklusion :

Linux -kommando ved udførelse giver standardoutput, der kan være et succesoutput eller et fejloutput. Generelt kan disse output ikke omdirigeres ved hjælp af omdirigeringsoperatorer; vi skal bruge specifikke numeriske id'er med> -tegnet. I denne vejledning lærte vi, hvordan man bruger disse numeriske taster til at omdirigere standardoutput til en fil med eksempler.