Wie man tee auf stderr?

Will ich split stdout so, dass es gedruckt wird sowohl stdout und stderr. Das klingt wie ein job für tee aber die syntax ist umgehen mich -

./script.sh | tee stderr

Natürlich, wie sollte stderr tatsächlich auf die hier verwiesen wird?

  • Du meinst /dev/fd/2?
  • Oder /dev/stderr?
  • Es gibt Systeme mit /dev/fd aber ohne die symlinks stderr, stdout. Ich denke, dass schließt Solaris? Ein paar Ausreißer, wie z.B. HP-UX, AIX, Irix nicht über /dev/fd, natürlich, aber alle geistig-Systeme tun.
  • Mein bad, Solaris 8 und 9 haben /dev/stderr...
  • Wirklich? Solaris 10 hat /dev/stderr. Ich habe nicht erlebt ein system mit /dev/fd dass nicht auch /dev/std{in,out,err}, aber das bedeutet nicht, dass Sie nicht existieren. Mac OS X 10.7.5 hat beide; Solaris hat beide; Linux hat beides. AIX 6 hat weder; HP-UX 11.00, hat weder.
  • Möglich dupe mit vielen möglichen Antworten: stackoverflow.com/questions/692000/...
  • bash akzeptiert /dev/stderr als synonym für "standard error", ob die Datei existiert im Dateisystem; es ist ein besonderer Fall.
  • Bezüglich /dev/fd/2 und /dev/stderr; bash-Handbuch auf Umleitungen: Bash verarbeitet mehrere Dateinamen, speziell wenn Sie werden verwendet, Umleitungen, ...

InformationsquelleAutor djechlin | 2012-12-10
Schreibe einen Kommentar