Každý proces V systéme Linux vytvára tri dátové toky, stdin, stdout a stderr:
- stdin : Prijíma informácie od užívateľa prostredníctvom klávesnice
- stdout : Zobrazí výstup na obrazovke
- stderr : Zobrazuje informácie o chybe na obrazovke
Každý dátový tok má číselné ID:
Numerické ID | názov |
0 | stdin |
1 | stdout |
2 | stderr |
Vysvetlíme presmerovanie trochu podrobnejšie:
Ako presmerovať štandardný výstup a štandardnú chybu v Bash:
Na presmerovanie štandardného výstupu príkazu použijeme 1 s operátorom presmerovania, ktorý je väčší ako znamienko>:
$ls 1>stdout.txtVyššie uvedený príkaz vytvorí súbor a umiestni štandardný výstup príkazu ls do súboru stdout.txt.
Na prečítanie súboru stdout.txt použite:
$katstdout.txt
Štandardnú chybu môžeme tiež presmerovať do súboru pomocou príkazu:
$katmyfile.txt2>stderr.txt
Na zobrazenie súboru stderr.txt použite:
$katstderr.txt
Uistite sa, že hodnota 2 bude väčšia ako znamienko>. Pretože v adresári nie je žiadny súbor myfile.txt, príkaz cat zadá chybu, ktorá bude pridaná do súboru stderr.txt.
Tieto štandardné výstupy je možné presmerovať aj jediným príkazom, použite:
$ls 1>stdout.txt2>stderr.txt
Výstup príkazu ls bude zapísaný do súboru stdout.txt súbor, ale súbor stderr.txt zostane prázdny, pretože by nedošlo k žiadnej chybe.
Teraz urobíme pre stderr.txt:
$katmyfile.txt1>stdout.txt2>stderr.txt
Na prečítanie súboru stderr.txt použite nižšie uvedený príkaz.
$katstderr.txt
A samozrejme, stdout.txt bude prázdny.
Záver :
Príkaz Linux po spustení poskytuje štandardný výstup, ktorý môže byť úspešným alebo chybovým výstupom. Tieto výstupy nemožno spravidla presmerovať pomocou operátorov presmerovania; musíme použiť konkrétne číselné ID so znamienkom>. V tejto príručke sme sa naučili používať tieto číselné klávesy na presmerovanie štandardného výstupu do súboru s príkladmi.