Schreiben terminal nach dem umleiten von stdout in eine Datei ohne Verwendung von stderr?

Habe ich zwei shell-Skripte, die eine dient als Haupt - "Programm", und ein anderes, das als "Bibliothek".

In mehreren Orten in der "Programm," das mache ich so etwas wie: log "$thing" >> "$logfile", wo log ist eine Funktion definiert, die in der "Bibliothek".

# program.sh

logfile="log.txt"
stuff="hahah heheh hoho"

. library.sh 

for thing in $stuff; do
  log "$thing" >> "$logfile"
done

Meine Frage: gibt es eine Möglichkeit die Umleitung einige der Ausgang aus der Funktion zurück zum terminal ohne Verwendung stderr?

# library.sh

log () {

  # This gets written to the log
  echo "`date --rfc-3339=seconds`: $1"

  # How to write this to the terminal *without* using stderr?
  echo "Info: Message written to log." >&2

}

Möchte ich vermeiden die Verwendung von stderr weil in meinem eigentlichen Programm, gibt es eine option zum umleiten von Fehlern in einer Datei, sondern die Nachrichten, die ich senden möchten, um das terminal zu Informationszwecken, keine Fehler, und sollten immer zeigen, bis auf das terminal.

InformationsquelleAutor Dagg Nabbit | 2012-02-23
Schreibe einen Kommentar