GNU/Linux >> Linux Esercitazione >  >> Linux

Come reindirizzare stderr e stdout a file diversi nella stessa riga nello script?

Così:

$ command >>output 2>>error

Basta aggiungerli in una riga command 2>> error 1>> output

Tuttavia, tieni presente che >> serve per aggiungere se il file contiene già dati. Mentre, > sovrascriverà tutti i dati esistenti nel file.

Quindi, command 2> error 1> output se non vuoi aggiungere.

Solo per completezza, puoi scrivere 1> come solo > poiché il descrittore di file predefinito è l'output. quindi 1> e > è la stessa cosa.

Quindi, command 2> error 1> output diventa, command 2> error > output


Prova questo:

your_command 2>stderr.log 1>stdout.log

Ulteriori informazioni

I numeri 0 attraverso 9 sono descrittori di file in bash.0 sta per input standard, 1 sta per output standard, 2 sta per errore standard. 3 attraverso 9 sono di riserva per qualsiasi altro utilizzo temporaneo.

Qualsiasi descrittore di file può essere reindirizzato a un file o a un altro descrittore di file utilizzando l'operatore > . Puoi invece usare l'operatore >> per aggiungere un file invece di crearne uno vuoto.

Utilizzo:

file_descriptor > filename

file_descriptor > &file_descriptor

Fare riferimento alla Guida avanzata di scripting Bash:Capitolo 20. Reindirizzamento I/O.


Oppure, se ti piace combinare gli output (stdout e stderr) in un singolo file, potresti voler utilizzare:

command > merged-output.txt 2>&1

Linux
  1. Come dividere e combinare file dalla riga di comando in Linux

  2. Come acquisire le sessioni del terminale e l'output con il comando di script Linux

  3. Output su Stdout e allo stesso tempo Grep in un file?

  4. Come reindirizzare l'output di un programma e continuare a farlo andare a Stdout?

  5. Reindirizzamento e uscita del tubo?

Come reindirizzare stderr a stdout in Bash

Configurare la shell per stampare Stderr e Stdout in diversi colori?

Come reindirizzare Stderr e Stdout su file diversi e visualizzarli anche nel terminale?

Come sapere se l'output di un comando o di uno script di shell è Stdout o Stderr?

Come reindirizzare l'output su un file e stdout

Qual è la differenza nel reindirizzare un output usando >, &>, >&e 2&>?