У меня есть два сценария оболочки, один из которых служит главной «программой», а другой - «библиотекой».
В некоторых местах в «программе» я сделаю что-то вроде: log "$thing" >> "$logfile"
, где log
- это функция, определенная в «библиотеке».
# program.sh
logfile="log.txt"
stuff="hahah heheh hoho"
. library.sh
for thing in $stuff; do
log "$thing" >> "$logfile"
done
Myвопрос: есть ли способ перенаправить некоторые выходных данных из функции обратно на терминал без , используя 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
}
Я хочу избежатьиспользование stderr
, потому что в моей реальной программе есть возможность перенаправлять ошибки в файл, но сообщения, которые я хочу отправить на терминал, являются информационными, а не ошибками, и должны всегда отображаться на терминале.