将错误重定向到标准输出

山塔诺

我可以将错误与标准输出保存在同一文件中。我在下面使用了这种方法。问题是错误输出始终显示在顶部。在下面给出的示例中,该错误与倒数第二个sql命令有关,该命令无法保存值“ india”。错误消息应显示在该语句旁边,而不是文件的顶部。

# cat import.txt
drop table if exists testme;
create table testme (id int , name varchar(255));
insert into testme values (1, 'abc');
insert into testme values (2, 'abc', 'india');
insert into testme values (3, 'xyz');

# mysql test -vvf  < import.txt  >standard.txt 2>&1

# cat standard.txt
ERROR 1136 (21S01) at line 5: Column count doesn't match value count at row 1
--------------
drop table if exists testme
--------------

Query OK, 0 rows affected

--------------
create table testme (id int , name varchar(255))
--------------

Query OK, 0 rows affected

--------------
insert into testme values (1, 'abc')
--------------

Query OK, 1 row affected

--------------
insert into testme values (2, 'abc', 'india')
--------------

--------------
insert into testme values (3, 'xyz')
--------------

Query OK, 1 row affected

预期的输出将类似于以下内容...

# mysql test -vvf  < import.txt
--------------
drop table if exists testme
--------------

Query OK, 0 rows affected

--------------
create table testme (id int , name varchar(255))
--------------

Query OK, 0 rows affected

--------------
insert into testme values (1, 'abc')
--------------

Query OK, 1 row affected

--------------
insert into testme values (2, 'abc', 'india')
--------------

ERROR 1136 (21S01) at line 4: Column count doesn't match value count at row 1
--------------
insert into testme values (3, 'xyz')
--------------

Query OK, 1 row affected

错误输出应恰好位于与其相关的语句的旁边。否则,重定向的输出文件将无用。

震荡器

实际上,这与外壳无关,这是mysql命令行实用程序的“功能”

基本上,当mysql检测到输出没有到达终端时,它将启用输出缓冲。这样可以提高性能。但是,程序显然会将成功输出发送到STDOUT,将错误输出发送到STDERR(这确实很有意义),并为每个驱动器保留一个单独的缓冲区。

解决的方法是简单地添加-n到mysql命令参数。-n(或--unbuffered)选项禁用输出缓冲。

例如:

mysql test -nvvf  < import.txt  >standard.txt 2>&1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将标准输出重定向到标准错误

来自分类Dev

将标准输出重定向到文件

来自分类Dev

将标准输出重定向到整数

来自分类Dev

将标准输入重定向到标准输出

来自分类Dev

将输出重定向到标准输出而不是文件

来自分类Dev

将STDOUT和STDERR重定向到文件,但system()的标准输出/错误除外

来自分类Dev

将静默SQL Server安装中的输出重定向到C#中的“标准错误”?

来自分类Dev

蟒蛇。将标准输出重定向到套接字

来自分类Dev

C将标准输出重定向到几个地方

来自分类Dev

Linux将标准输出重定向到实时管道

来自分类Dev

Python。将标准输出重定向到套接字

来自分类Dev

如何将Jmeter标准输出重定向到文件

来自分类Dev

Bash将标准输出重定向到功能

来自分类Dev

重定向标准错误并保留标准输出

来自分类Dev

如何将标准错误重定向到文件

来自分类Dev

在 VBS 中重定向到标准输出

来自分类Dev

将进程的标准输出重定向到其自己的标准输入

来自分类Dev

JavaFX:将输入/输出/错误从ProcessBuilder重定向到TextArea?

来自分类Dev

将mongo shell错误重定向到输出

来自分类Dev

将命令错误输出重定向到/ dev / null

来自分类Dev

将grep错误输出重定向到文件

来自分类Dev

将错误输出重定向到脚本内的文件

来自分类Dev

将mongo shell错误重定向到输出

来自分类Dev

将tty重定向到标准

来自分类Dev

将一个命令的标准错误重定向到另一命令的标准输入

来自分类Dev

zsh:重置标准输出/标准错误重定向

来自分类Dev

Windows Batch-如何在将标准输出重定向到文件时添加时间戳

来自分类Dev

Supervisord-将流程标准输出重定向到控制台

来自分类Dev

将management.call_command()标准输出重定向到文件

Related 相关文章

  1. 1

    如何将标准输出重定向到标准错误

  2. 2

    将标准输出重定向到文件

  3. 3

    将标准输出重定向到整数

  4. 4

    将标准输入重定向到标准输出

  5. 5

    将输出重定向到标准输出而不是文件

  6. 6

    将STDOUT和STDERR重定向到文件,但system()的标准输出/错误除外

  7. 7

    将静默SQL Server安装中的输出重定向到C#中的“标准错误”?

  8. 8

    蟒蛇。将标准输出重定向到套接字

  9. 9

    C将标准输出重定向到几个地方

  10. 10

    Linux将标准输出重定向到实时管道

  11. 11

    Python。将标准输出重定向到套接字

  12. 12

    如何将Jmeter标准输出重定向到文件

  13. 13

    Bash将标准输出重定向到功能

  14. 14

    重定向标准错误并保留标准输出

  15. 15

    如何将标准错误重定向到文件

  16. 16

    在 VBS 中重定向到标准输出

  17. 17

    将进程的标准输出重定向到其自己的标准输入

  18. 18

    JavaFX:将输入/输出/错误从ProcessBuilder重定向到TextArea?

  19. 19

    将mongo shell错误重定向到输出

  20. 20

    将命令错误输出重定向到/ dev / null

  21. 21

    将grep错误输出重定向到文件

  22. 22

    将错误输出重定向到脚本内的文件

  23. 23

    将mongo shell错误重定向到输出

  24. 24

    将tty重定向到标准

  25. 25

    将一个命令的标准错误重定向到另一命令的标准输入

  26. 26

    zsh:重置标准输出/标准错误重定向

  27. 27

    Windows Batch-如何在将标准输出重定向到文件时添加时间戳

  28. 28

    Supervisord-将流程标准输出重定向到控制台

  29. 29

    将management.call_command()标准输出重定向到文件

热门标签

归档