捕获错误并输出以登录Bash脚本

时间:2012-09-14 01:10:00

标签: bash

我有一个脚本,它根据记录ID的文本文件检查数据库是否有错误。

当连接丢失时发生错误,它会将违规ID($ line)写入日志文件以及错误消息($ OP)。

问题是错误消息始终为null,尽管错误显示在控制台上,只有id被写入日志文件。

如何捕获错误并将其输出到日志文件?

while read line
do
    OP=$(mysql $DB -u root --password=$PW -e "select * from properties where hierarchyid = $line")
    printf "\r$line"
    #if [ $? -gt 0 ]; then
    if [[ ! $OP =~ "hierarchyid" ]]; then
        echo
        echo $line $OP >> errors.log
        sleep 10    
        echo
    fi
done < $IDS

1 个答案:

答案 0 :(得分:3)

将stderr重定向到stdout。

OP=$(mysql ... 2>&1)