Ogni processo in Linux produce tre flussi di dati, stdin, stdout e stderr:
- standard : Accetta input dall'utente tramite tastiera
- stdout : Visualizza l'output sullo schermo
- stderr : mostra le informazioni sull'errore sullo schermo
Ogni flusso di dati ha un ID numerico:
ID numerico | Nome |
0 | standard |
1 | stdout |
2 | stderr |
Spieghiamo un po' più in dettaglio il reindirizzamento:
Come reindirizzare l'output standard e l'errore standard in Bash:
Per reindirizzare l'output standard del comando, utilizzeremo 1 con un operatore di reindirizzamento maggiore del segno >:
$ls 1>stdout.txtIl comando precedente creerà un file e posizionerà l'output standard del comando ls nel file stdout.txt.
Per leggere il file stdout.txt, usa:
$gattostdout.txt
Possiamo reindirizzare anche l'errore standard su un file utilizzando il comando:
$gattomiofile.txt2>stderr.txt
Per visualizzare il file stderr.txt, utilizzare:
$gattostderr.txt
Assicurati che l'uso 2 sia maggiore del segno >. Poiché nella directory non è presente alcun file myfile.txt, il comando cat restituirà un errore che verrà aggiunto al file stderr.txt.
Questi output standard possono essere reindirizzati anche con un singolo comando, utilizzare:
$ls 1>stdout.txt2>stderr.txt
L'output del comando ls sarà scritto nel stdout.txt file, ma il stderr.txt rimarrà vuoto perché non ci sarebbero errori.
Ora facciamo per stderr.txt:
$gattomiofile.txt1>stdout.txt2>stderr.txt
Utilizzare il comando indicato di seguito per leggere stderr.txt.
$gattostderr.txt
E, naturalmente, stdout.txt sarà vuoto.
Conclusione :
Il comando Linux all'esecuzione fornisce un output standard che potrebbe essere un output di successo o un output di errore. In genere, questi output non possono essere reindirizzati utilizzando operatori di reindirizzamento; dobbiamo usare ID numerici specifici con il segno >. In questa guida abbiamo appreso come utilizzare questi tasti numerici per reindirizzare l'output standard a un file con esempi.