GNU/Linux >> Znalost Linux >  >> Linux

bash:přesměrování stderr do souboru a stdout + stderr na obrazovku

S nedávným bashem můžete použít substituci procesů.

foo 2> >(tee stderr.txt)

Toto pouze odešle stderr do programu běžícího odpaliště.

Přenosnější

exec 3>&1 
foo 2>&1 >&3 | tee stderr.txt

Díky tomu bude deskriptor souboru 3 kopií aktuálního stdout (tj. obrazovky), pak se nastaví roura a spustí se foo 2>&1 >&3 . Toto odešle stderr of foo na stejné místo jako aktuální stdout, což je roura, a poté odešle stdout na fd 3, původní výstup. Trubka přivádí původní stderr of foo do tee, který jej uloží do souboru a odešle na obrazovku.


Linux
  1. Jak přesměrovat Stderr a Stdout na různé soubory a také zobrazit v terminálu?

  2. Zobrazit na obrazovce pouze Stderr, ale zapsat do souboru Stdout i Stderr?

  3. najít a zkopírovat soubor pomocí Bash

  1. Jak přesměrovat stderr a stdout na různé soubory ve stejném řádku ve skriptu?

  2. Co přesně je <() v bash (a =() v zsh)?

  3. Zachycení STDERR a STDOUT do souboru pomocí tee

  1. Jak přesměrovat výstup do souboru a Stdout v Linuxu

  2. Způsob, jak přesměrovat výstup programu, a přesto jej přejít na Stdout?

  3. Jak přesměrovat pouze Stderr?