0

レコード 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
4

1 に答える 1

3

stderr を stdout にリダイレクトします。

OP=$(mysql ... 2>&1)
于 2012-09-14T01:12:17.130 に答える