0

シェル スクリプトで mysqldump を使用して、運用環境からローカル環境にいくつかのスキーマをダンプしています。

schemas = (one two three)
read -p "Enter Username: " un   
read -s -p "Enter Password: " pw
for schema in "${schemas[@]}"
do
  :
  mysqldump -h SERV -u $un --password=$p > /dev/null 2>&1 | mysql -uroot LOCAL
done    

警告とエラーメッセージを防ぐために、エラーを /dev/null にリダイレクトしていますが、エラーをキャッチして、出力に基づいて別のことを実行できるようにしたいと考えています (例: Access Denied、Not Found)。

mysqldump から返されたエラーを取得し、それを使用してシェル スクリプトで別のアクションを実行するにはどうすればよいですか?

価値があるのは、STDERR がアクセス拒否されている場合でも、$?変数は常に mysqldump の完了後にあるように見えることです。0

4

1 に答える 1

1

私はもう少し調査を行い、ここで答えを見つけました:

http://scratching.psybermonkey.net/2011/01/bash-how-to-check-exit-status-of-pipe.html

于 2013-09-04T20:22:53.347 に答える