Kako preusmjeriti stderr na stdout u Bashu

How Redirect Stderr Stdout Bash



Naredbe u Linuxu primaju neke unose od korisnika, što može biti datoteka ili bilo koji atribut, a nakon izvršavanja daju neki izlaz koji se naziva standardni izlaz. Standardni izlaz može biti uspješan izlaz ili izlaz pogreške; oboje će biti prikazano na ekranu vašeg terminala. No, u nekim slučajevima želite pohraniti standardne izlaze u datoteku za testiranje ili otklanjanje pogrešaka koda. U Linuxu se ti izlazi mogu preusmjeriti u datoteku, a proces hvatanja naziva se preusmjeravanje.







Svaki proces u Linuxu proizvodi tri toka podataka, stdin, stdout i stderr:



  • stdin : Uzima unos od korisnika putem tipkovnice
  • stdout : Prikazuje izlaz na ekranu
  • stderr : Prikazuje informacije o pogrešci na zaslonu

Svaki tok podataka ima numerički ID:



Numerički ID Ime
0 stdin
1 stdout
2 stderr

Objasnimo malo preusmjeravanje s detaljima:





Kako preusmjeriti standardni izlaz i standardnu ​​pogrešku u Bashu:

Za preusmjeravanje standardnog izlaza naredbe koristit ćemo 1 s operatorom preusmjeravanja koji je veći od znaka>:

$ls 1>stdout.txt

Gornja naredba će stvoriti datoteku i postaviti standardni izlaz naredbe ls u datoteku stdout.txt.



Da biste pročitali datoteku stdout.txt, upotrijebite:

$mačkastdout.txt

Standardnu ​​pogrešku možemo preusmjeriti i u datoteku pomoću naredbe:

$mačkamyfile.txt2>stderr.txt

Za pregled stderr.txt datoteke upotrijebite:

$mačkastderr.txt

Uvjerite se da će upotreba 2 biti veća od znaka>. Budući da u direktoriju nema datoteke myfile.txt, naredba cat će dati pogrešku koja će biti dodana u datoteku stderr.txt.

Ovi standardni izlazi mogu se preusmjeriti i jednom naredbom, upotrijebite:

$ls 1>stdout.txt2>stderr.txt

Izlaz naredbe ls bit će zapisan u stdout.txt datoteku, ali stderr.txt će ostati prazna jer ne bi došlo do greške.

Učinimo sada za stderr.txt:

$mačkamyfile.txt1>stdout.txt2>stderr.txt

Za čitanje stderr.txt upotrijebite dolje navedenu naredbu.

$mačkastderr.txt

I naravno, stdout.txt će biti prazan.

Zaključak :

Naredba Linuxa nakon izvršavanja daje standardni izlaz koji bi mogao biti uspješan izlaz ili izlaz pogreške. Općenito, ti se izlazi ne mogu preusmjeriti pomoću operatora preusmjeravanja; moramo koristiti određene numeričke ID -ove sa znakom>. U ovom smo vodiču naučili kako pomoću ovih numeričkih tipki preusmjeriti standardni izlaz u datoteku s primjerima.