2012-09-14 40 views
0

我有一个脚本,它正在检查数据库中的记录ID文本文件的错误。捕获错误和输出以登录Bash脚本

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

问题是错误消息始终为空,尽管错误显示在控制台上,但只有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 

回答

3

将标准错误重定向到标准输出。

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