如果您在命令行上运行mysql查询 . 在这里,我假设您在文本文件中有查询列表,并且您希望输出在另一个文本文件中 . 然后你可以用它 . [test_2是数据库名称]
命令1
mysql -vv -u root -p test_2 < query.txt > /root/results.txt 2>&1
-vv用于详细输出 .
如果您使用上述声明
命令2
mysql -vv -u root -p test_2 < query.txt 2>&1 > /root/results.txt
它会将STDERR重定向到正常位置(即在终端上),将STDOUT重定向到输出文件,在我的例子中是result.txt
第一个命令执行query.txt,直到遇到错误并在那里停止 .
这就是重定向的工作原理 . 你可以试试
#ls key.pem asdf > /tmp/output_1 2>&1 /tmp/output_2
这里key.pm文件存在且asdf不存在 . 因此,当你捕获文件时,你得到以下内容
# cat /tmp/output_1
key.pem
#cat /tmp/output_2
ls: cannot access asdf: No such file or directory
但是如果你用这个修改前面的语句
ls key.pem asdf > /tmp/output_1 > /tmp/output_2 2>&1
然后在output_2中获得错误和输出
cat /tmp/output_2
ls: cannot access asdf: No such file or directory
key.pem