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