我在 shell 脚本中使用 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 以防止出现警告和错误消息,但我希望能够捕获错误并根据输出执行其他操作(例如访问被拒绝、未找到)。
如何捕获从 mysqldump 返回的错误并使用它在 shell 脚本中执行其他操作?
就其值(value)而言,在 mysqldump 完成后,$?
变量似乎总是 0
,即使 STDERR 被拒绝访问。
最佳答案
我做了更多研究并在这里找到了答案:
http://scratching.psybermonkey.net/2011/01/bash-how-to-check-exit-status-of-pipe.html
关于shell - 如何捕获从 mysqldump 返回的错误并使用它在 shell 脚本中执行另一个操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18622890/