Come reindirizzare Stderr a StDout in Bash

Come reindirizzare Stderr a StDout in Bash
I comandi in Linux prendono alcuni input dall'utente, che potrebbe essere un file o qualsiasi attributo, e dopo l'esecuzione, forniscono un output chiamato output standard. L'output standard potrebbe essere un output di successo o un'output di errori; Entrambi verranno visualizzati sullo schermo del terminale. Ma in alcuni casi, si desidera archiviare output standard su un file per il test o il debug del codice. In Linux, questi output possono essere reindirizzati a un file e il processo di catturarlo chiamato reindirizzamento.

Ogni processo in Linux produce tre flussi di dati, "stdin", "stdout" e "stderr":

  • stdin: Prende input dall'utente tramite tastiera
  • stdout: Visualizza l'output sullo schermo
  • Stderr: Mostra le informazioni di errore sullo schermo

Ogni flusso di dati ha un ID numerico:

ID numerico Nome
0 stdin
1 stdout
2 Stderr

Spieghiamo un po 'di più il reindirizzamento con i dettagli:

Come reindirizzare l'output standard e l'errore standard in Bash:

Per reindirizzare l'output standard del comando, useremo "1" con un operatore di reindirizzamento che è maggiore del segno ">":

$ ls 1> stdout.TXT

Il comando sopra creerà un file e posizionerà l'output standard del comando "LS" in "StDout.file txt ".

Per leggere il "stdout.file txt ", usa:

$ cat stdout.TXT

Possiamo reindirizzare anche l'errore standard in un file utilizzando il comando:

$ cat myfile.txt 2> stderr.TXT

Per visualizzare il "Stderr.file txt ", usa:

$ CAT STDERR.TXT

Assicurati che usi "2" sarà maggiore del segno ">". Dal momento che non c'è "myfile.file txt "Nella directory, il comando" Cat "fornirà un errore che verrà aggiunto nel" Stderr.file txt ".

Queste uscite standard possono essere reindirizzate anche con un singolo comando, utilizzare:

$ ls 1> stdout.txt 2> stderr.TXT

L'output del comando "LS" sarà scritto in "stdout.TXTFile ", ma il"Stderr.TXT"Rimarrà vuoto perché non ci sarebbe un errore.

Ora facciamo per "Stderr.TXT":

$ cat myfile.txt 1> stdout.txt 2> stderr.TXT

Usa il comando di seguito per leggere "Stderr.TXT."

$ CAT STDERR.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 errori. In generale, queste uscite non possono essere reindirizzate utilizzando gli operatori di reindirizzamento; Dobbiamo utilizzare ID numerici specifici con il segno ">". In questa guida, abbiamo imparato a utilizzare queste chiavi numeriche per reindirizzare l'output standard in un file con esempi.