Svaki proces u Linuxu proizvodi tri toka podataka, "stdin", "stdout" i "stderr":
- stdin: Uzima unos od korisnika putem tipkovnice
- stdout: Prikazuje izlaz na zaslonu
- stderr: Na zaslonu prikazuje informacije o pogrešci
Svaki tok podataka ima numerički id:
Numerički Id | Ime |
0 | stdin |
1 | stdout |
2 | stderr |
Objasnimo preusmjeravanje malo detaljnije:
Kako preusmjeriti standardni izlaz i standardnu pogrešku u Bashu:
Za preusmjeravanje standardnog izlaza naredbe upotrijebit ćemo "1" s operatorom preusmjeravanja koji je veći od znaka ">":
$ ls 1> stdout.txtGornja naredba će stvoriti datoteku i postaviti standardni izlaz naredbe "ls" u "stdout.txt ”datoteku.
Da biste pročitali „stdout.txt ”, koristite:
$ mačka stdout.txt
Standardnu pogrešku možemo preusmjeriti i na datoteku pomoću naredbe:
$ mačka moja datoteka.txt 2> stderr.txt
Za prikaz "stderr.txt ”, koristite:
$ mačka stderr.txt
Obavezno koristite "2" više od znaka ">". Budući da ne postoji „myfile.txt ”u direktoriju, naredba“ mačka ”dat će pogrešku koja će biti dodana u“ stderr.txt ”datoteku.
Ovi standardni izlazi se mogu preusmjeriti jednom naredbom, također koristite:
$ ls 1> stdout.txt 2> stderr.txt
Izlaz naredbe "ls" bit će zapisan u "stdout.txt", Ali"stderr.txt”Ostat će prazan jer ne bi bilo pogreške.
Sada napravimo za “stderr.txt ":
$ mačka moja datoteka.txt 1> stdout.txt 2> stderr.txt
Upotrijebite dolje spomenutu naredbu za čitanje “stderr.txt."
$ mačka stderr.txt
I naravno, „stdout.txt ”bit će prazno.
Zaključak:
Linux naredba nakon izvršavanja daje standardni izlaz koji može biti izlaz za uspjeh ili izlaz za pogrešku. Općenito se ti izlazi ne mogu preusmjeriti pomoću operatora preusmjeravanja; trebamo koristiti određene numeričke ID-ove sa znakom ">". U ovom smo vodiču naučili kako koristiti ove numeričke tipke za preusmjeravanje standardnih rezultata u datoteku s primjerima.