Reindirizzamento di Stderr usando il comando TEE in Ubuntu

Reindirizzamento di Stderr usando il comando TEE in Ubuntu

Il comando TEE prende l'input standard e lo invia a uno o più file e l'output standard. Il comando a tee deriva dal tubo t-splitter. Rompe semplicemente l'output di un programma in modo che possa essere mostrato e salvato in un file. Esegue entrambi i lavori contemporaneamente, copia l'output ai file o variabili forniti e visualizza l'output.

Sintassi:

$ tee [opzioni] [file]

Opzioni:

  • -UN: Aggiungi (invece di sovrascrivere i file, aggiungili a quelli esistenti)
  • -io: Ignora gli interrupt (ignora i segnali che interrompono)

File: ci sono più file. I dati di output sono scritti a ciascuno di essi.

Il descrittore di file predefinito per il processo di scrittura dei messaggi di errore è stderr, spesso noto come errore standard. Gli errori standard possono essere inoltrati alla riga di comando in bash. Questo articolo riguarda il reindirizzamento dell'output da Stderr usando il comando TEE in diversi scenari.

Reindirizzare Stderr usando il comando TEE

Gli errori standard vengono inoltrati alla riga di comando in bash. Il reindirizzamento di Stderr potrebbe consentire di acquisire messaggi di errore in un file di registro distinto o eliminare completamente i messaggi di errore. Spiegheremo la procedura per reindirizzare STderr usando il comando TEE con i seguenti esempi.

Passaggio 1: creare un file bash

Innanzitutto, crea un file bash “Linux.sh "usando il seguente comando:

$ Nano Linux.sh

Passaggio 2: scrivi il codice

Ora, scrivi il seguente codice nel file o puoi scrivere qualcos'altro in base al tuo requisito:

$ #!/Bin/Bash
Echo ciao
1> & 2 Echo World

Passaggio 3: verificare se il file bash funziona

Ora, controlla se il file bash funziona correttamente o se il codice scritto in esso è corretto eseguendo il seguente comando nel terminale:

$ ./Linux.sh

Il risultato dato emette il risultato corretto, il che dimostra che il codice funziona correttamente.

Esegui un altro comando menzionato di seguito per controllare il codice di lavoro:

$ ./Linux.sh>/dev/null

Ora, esegui il seguente comando per controllare il funzionamento del codice:

$ ./Linux.sh 2>/dev/null

Abbiamo ottenuto l'output previsto; Significa che il codice è corretto.

Passaggio 4: reindirizzare lo stderr al comando tee

Il> (...) (sostituzione del processo) stabilisce un FIFO e lo rende disponibile per l'ascolto. Quindi, impiega> (reindirizzamento del file) per inviare il comando al FIFO che il tuo primo tee sta monitorando.

Il comando seguente reindirizza Stderr al tee. Reindirizza l'output su "/tmp/log":

$ ./Linux.SH 2 >> (TEE /TMP /LOG)

Ora, output il file in cui abbiamo reindirizzato l'output.

$ cat /tmp /log

Per impostazione predefinita, TEE stampe su stdout. Stampa questo su Stderr.

$ (./Linux.SH 2 >> (TEE/TMP/LOG> & 2))>/Dev/Null

Conclusione

Il comando TEE legge i dati da un file/file di input e scrive l'output ricevuto in molti file. Reindirizzamento degli errori su Stderr può essere eseguito con l'aiuto del comando TEE. Esistono molti modi per reindirizzare l'output. Ma in questo articolo, abbiamo descritto una procedura, con l'aiuto di un esempio, per reindirizzare STderr alla maglietta usando un file bash e visualizzato l'output su Ubuntu (sistema operativo Linux). Troverai questo articolo utile per reindirizzare STderr usando il comando TEE.