Tots els processos de Linux produeixen tres fluxos de dades, stdin, stdout i stderr:
- stdin : Pren l'entrada de l'usuari mitjançant el teclat
- stdout : Mostra la sortida a la pantalla
- stderr : Mostra informació d'error a la pantalla
Cada flux de dades té un identificador numèric:
Identificador numèric | Nom |
0 | stdin |
1 | stdout |
2 | stderr |
Explicem la redirecció una mica més amb detalls:
Com redirigir la sortida estàndard i l'error estàndard a Bash:
Per redirigir la sortida estàndard de l'ordre, utilitzarem 1 amb un operador de redirecció superior al signe>:
$ls 1>stdout.txtL'ordre anterior crearà un fitxer i col·locarà la sortida estàndard de l'ordre ls al fitxer stdout.txt.
Per llegir el fitxer stdout.txt, utilitzeu:
$gatstdout.txt
També podem redirigir l’error estàndard a un fitxer mitjançant l’ordre:
$gatmyfile.txt2>stderr.txt
Per veure el fitxer stderr.txt, utilitzeu:
$gatstderr.txt
Assegureu-vos que l’ús 2 sigui superior al signe>. Com que no hi ha cap fitxer myfile.txt al directori, l'ordre cat donarà un error que s'afegirà al fitxer stderr.txt.
Aquestes sortides estàndard es poden redirigir amb una sola ordre també, utilitzeu:
$ls 1>stdout.txt2>stderr.txt
La sortida de l'ordre ls s'escriurà al fitxer stdout.txt , però el fitxer stderr.txt romandrà buit perquè no hi hauria cap error.
Ara anem a fer per stderr.txt:
$gatmyfile.txt1>stdout.txt2>stderr.txt
Utilitzeu l'ordre esmentada a continuació per llegir stderr.txt.
$gatstderr.txt
I, per descomptat, stdout.txt estarà buit.
Conclusió :
L'ordre Linux en executar proporciona una sortida estàndard que pot ser una sortida d'èxit o una sortida d'error. Generalment, aquestes sortides no es poden redirigir mitjançant operadors de redirecció; hem d’utilitzar identificadors numèrics específics amb el signe>. En aquesta guia, hem après a utilitzar aquestes tecles numèriques per redirigir la sortida estàndard a un fitxer amb exemples.