Kako preusmeriti stderr na stdout v Bashu

How Redirect Stderr Stdout Bash



Ukazi v Linuxu vzamejo nekaj vnosa od uporabnika, ki je lahko datoteka ali kateri koli atribut, po izvedbi pa dajo nekaj izhodov, imenovanih standardni izhod. Standardni izhod je lahko uspeh ali izpis napake; oboje bo prikazano na zaslonu vašega terminala. Toda v nekaterih primerih želite shraniti standardne izhode v datoteko za testiranje ali odpravljanje napak kode. V Linuxu lahko te izhode preusmerite v datoteko, postopek zajema pa se imenuje preusmeritev.







Vsak proces v Linuxu proizvede tri podatkovne tokove, stdin, stdout in stderr:



  • stdin : Vnese vnos od uporabnika prek tipkovnice
  • stdout : Prikaže izhod na zaslonu
  • stderr : Prikaže informacije o napakah na zaslonu

Vsak podatkovni tok ima številčni ID:



Številčna ID Ime
0 stdin
1 stdout
2 stderr

Razložimo preusmeritev nekoliko podrobneje:





Kako preusmeriti standardni izhod in standardno napako v Bashu:

Za preusmeritev standardnega izpisa ukaza bomo uporabili 1 z operaterjem preusmeritve, ki je večji od znaka>:

$ls 1>stdout.txt

Zgornji ukaz bo ustvaril datoteko in postavil standardni izhod ukaza ls v datoteko stdout.txt.



Če želite prebrati datoteko stdout.txt, uporabite:

$mačkastdout.txt

Standardno napako lahko preusmerimo tudi v datoteko z ukazom:

$mačkamyfile.txt2>stderr.txt

Če si želite ogledati datoteko stderr.txt, uporabite:

$mačkastderr.txt

Prepričajte se, da bo uporaba 2 večja od znaka>. Ker v imeniku ni datoteke myfile.txt, bo ukaz cat prikazal napako, ki bo dodana v datoteko stderr.txt.

Tudi te standardne izhode lahko preusmerite z enim samim ukazom, uporabite:

$ls 1>stdout.txt2>stderr.txt

Izhod ukaza ls bo zapisan v stdout.txt datoteko, vendar stderr.txt bo ostala prazna, ker ne bi prišlo do napake.

Zdaj pa naredimo za stderr.txt:

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

Za branje stderr.txt uporabite spodnji ukaz.

$mačkastderr.txt

In seveda bo stdout.txt prazen.

Zaključek :

Ukaz Linux ob izvajanju daje standardni izhod, ki je lahko uspešen ali napačen. Na splošno teh izhodov ni mogoče preusmeriti z operaterji preusmeritve; uporabiti moramo posebne številske številke z znakom>. V tem priročniku smo se naučili, kako s temi številskimi tipkami preusmeriti standardni izhod v datoteko s primeri.