Syndicate
Site (RSS, Atom)
Contact
Weblog status
Total entries: 50
Last entry: 2016-10-17 22:22:03
Last updated: 2016-10-18 07:57:57
powered by vim, bash, cat, grep, sed, and nb 3.4.2

2011-05-11 21:54:16

BASH Dateideskriptoren / file descriptors

Standardfehler-Ausgabe generell auf STDOUT umlenken mittels "exec 2>&1":

$ ( echo ERROR >&2; ) |grep NIX
ERROR
$ ( exec 2>&1; echo ERROR >&2; ) |grep NIX
$

Generell STDIN umleiten bzw. schließen:

> echo TEST | ( cat -; )
TEST
> echo TEST | ( exec </dev/null; cat -; )
bash: echo: write error: Datenübergabe unterbrochen (broken
pipe)
> echo TEST | ( exec <&-; cat -; )
bash: echo: write error: Datenübergabe unterbrochen (broken
pipe)
cat: -: Ungültiger Dateideskriptor
cat: schließe Standardeingabe: Ungültiger Dateideskriptor
> 

Zusätzlichen Filedeskriptor öffnen, STDOUT (zwecks Weiterverarbeitung) duplizieren und am Ende wieder schließen:

> exec 3<&1
> echo 123|tee /proc/self/fd/3
123
123
> exec 3<&-
> echo 123|tee /proc/self/fd/3
tee: /proc/self/fd/3: Datei oder Verzeichnis nicht gefunden
123

Posted by Frank W. Bergmann | Permanent link | File under: shell