GNU/Linux >> Znalost Linux >  >> Linux

Určete, zda je výstup stdout nebo stderr

Znám pouze tři způsoby, jak určit, co bude program vydávat na STDOUT a co na STDERR

  1. Přečtěte si dokumentaci. Nebo

  2. Experimentujte s přesměrováním†

  3. vytisknout STDERR červeně

†Například:

program > program.stdout 2> program.stderr

Pak se podívejte na dva výstupní soubory, abyste viděli, co program zapsal do STDOUT a co zapsal do STDERR.

Místo přesměrování můžete použít kanál na tee pokud potřebujete výstup pro pokračování na obrazovku i do souboru. Viz https://stackoverflow.com/q/692000/477035


Na základě vašeho komentovaného požadavku:

{ { command; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'

Linux
  1. Co znamená propojení Stdout a Stdin?

  2. Zavření standardního výstupu (>&-)?

  3. Jak zjistit, zda je výstup příkazového nebo shellového skriptu Stdout nebo Stderr?

  1. Patří zprávy o pokroku/protokolované informace na Stderr nebo Stdout?

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

  3. Proč výstup některých linuxových programů nejde ani do STDOUT, ani do STDERR?

  1. Nakonfigurovat Shell pro tisk Stderr a Stdout v různých barvách?

  2. Co je výstupem pwd?

  3. Co může způsobit signál 11?