从bash脚本执行命令时,我遇到了MySQL输出格式的问题。
如果我在命令行上执行命令,那么我可以按预期格式化输出。
$ mysql -u dbclient -pxxxx GEKONYLOGDB -e "select now(),max(time_stamp) from metrics"
+---------------------+---------------------+
| now() | max(time_stamp) |
+---------------------+---------------------+
| 2012-12-09 14:25:38 | 2012-12-09 14:25:20 |
+---------------------+---------------------+
但是,如果我在脚本中保留相同的命令并执行,那么我没有得到格式化的输出。
$ cat test
#!/bin/bash
mysql -u dbclient -pxxxx GEKONYLOGDB -e "select now(),max(time_stamp) from metrics"
$ ./test
now() max(time_stamp)
2012-12-09 14:27:52 2012-12-09 14:27:47
所以我需要从脚本输出相同的输出。
感谢。
答案 0 :(得分:12)
将-t
或--table
选项传递给强制表输出。
mysql --table -u dbclient -pxxxx GEKONYLOGDB -e "select now(),max(time_stamp) from metrics"
来自mysql --help
:
-t, --table Output in table format.
答案 1 :(得分:0)
如果要在调用mysql程序时默认启用--table选项,请检查此SO答案How to store MySQL results to a file in table format。