Могу ли я повторить сообщение об ошибке и отправить его в файл журнала?

Я пытаюсь повторить сообщение об ошибке, а также записать его в файл журнала одновременно, но я не уверен, как это сделать. Я использовал 1>&2, но он просто отправляет его в файл журнала и не отображает сообщение. Вот мой код:

while read -r username password; do
    egrep "^$username" /etc/passwd >/dev/null
    if [ $? -eq 0 ]; then
        echo "ERROR BLABLAH $DATE" 1>&2 >> /var/log/error.log

person Max    schedule 27.09.2016    source источник


Ответы (2)


Пытаться

echo "ERROR BLABLAH $DATE" | tee -a /var/log/error.log 1>&2

Описание:

tee                                    # will repeat the std input.  
    -a  /var/log/error.log             # will append to the error.log file  
                            1>&2       # will send the stdin to stderr.  
person ImHere    schedule 27.09.2016

Вы хотите использовать команду «тройник»:

NAME
 tee - read from standard input and write to standard  output
 and files
SYNOPSIS
 tee [OPTION]... [FILE]...

e.g.

$echo "Hello world!" | tee test.txt
Hello world!
$cat test.txt
Hello world!
person Greg Tobkin    schedule 27.09.2016