Heim  >  Artikel  >  Datenbank  >  MySQL客户端输出格式化神奇现象

MySQL客户端输出格式化神奇现象

WBOY
WBOYOriginal
2016-06-07 16:55:181036Durchsuche

MySQL客户端输出格式化神奇现象,以前没注意到,在此分享一下:$ mysql -uroot -e ldquo;show global status like lsquo;Uptim

MySQL客户端输出格式化神奇现象,,以前没注意到,在此分享一下:
$ mysql -uroot -e “show global status like ‘Uptime’”
+—————+———+
| Variable_name | Value |
+—————+———+
| Uptime | 2174838 |
+—————+———+

$ mysql -uroot -e “show global status like ‘Uptime’” > /tmp/test
[mysql@dev81 ~]$ cat /tmp/test
Variable_name Value
Uptime 2174855

发现奇怪的地方了吗?格式化的那些符号都不见了!同样的命令,重定向到文件之后,输出变了!
+—————+———+
| Variable_name | Value |
+—————+———+
| Uptime | 2174838 |
+—————+———+
变成了
Variable_name Value
Uptime 2174855

想了很长时间,没想明白。问了下曲山,他二话不说开始用strace,马上就发现了奥妙所在。
$ strace mysql -uroot -e “show global status like ‘Uptime’”
……
……
write(1, “+—————+———+\n”, 28+—————+———+
) = 28
write(1, “| Variable_name | Value |\n”, 28| Variable_name | Value |
) = 28
write(1, “+—————+———+\n”, 28+—————+———+
) = 28
write(1, “| Uptime | 2175430 | \n”, 29| Uptime | 2175430 |
) = 29
write(1, “+—————+———+\n”, 28+—————+———+
) = 28
poll([{fd=3, events=POLLIN|POLLPRI}], 1, 0) = 0
write(3, “\1\0\0\0\1″, 5) = 5
shutdown(3, 2 /* send and receive */) = 0
close(3) = 0
exit_group(0) = ?
Process 24577 detached

$ strace mysql -uroot -e “show global status like ‘Uptime’” > /tmp/test
……
……
write(1, “Variable_name\tValue\nUptime\t21755″…, 35) = 35
exit_group(0) = ?
Process 24581 detached

针对不同的输出渠道,MySQL的客户端似乎有方法可以捕捉到并采取不同的格式化输出策略。不过MySQL为什么要这样做的原因还是不知道,估计只有天知道了。

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn