LINUX.ORG.RU
ФорумAdmin

Вывести саму ошибку в bash


0

0

Проверить выполнение программы можно вот так:

        if [ $? -ne 0 ]; then
           А вот как тут вывести описание ошибки в файл??
           непросто echo Error > error.log, а чтоб вписалась та ошибка, каторая на экран вывелась бы.
        fi
anonymous
Ответ на: комментарий от Cosmicman

Нормальный вариант, но почему то именно ошибки не сохраняются в stdout, а пишутся на экран :-(

anonymous
()
Ответ на: комментарий от anonymous

Хотелось бы сделать что было так:

Data: Error - А тут уже та ошибка которая должна была бы вывестись на экран

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

Спасибо! Но это немного не то.... Вот как я сделал:

        stdout=`program 2> err_tmp`
        if [ $? -ne 0 ]; then
                ER=`cat err_tmp`
                echo $DT: Error - $stdout $ER >> error.log
        fi
        rm -f err_tmp

Тут получилось то, что надо, весь вывод на экран сохраняется. Вот ещё бы обойтись без временного файла.

anonymous
()
Ответ на: комментарий от anonymous

================= cat test.sh ====================

#!/bin/bash

errdate=`date '+%d-%m-%Y %H:%M'`
error=`exec 3>&1; grep yyy xxx 2>&1 1>&3 3>&-`
echo "$errdate: $error"
==================================================
Результат выполнения:

$ ./test.sh
03-07-2004 21:12: grep: xxx: No such file or directory

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.