6

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 

したがって、スクリプトからの同じ出力が必要です。

ありがとう。

4

2 に答える 2

13

-tまたはオプションを渡して、--tableテーブル出力を強制します。

mysql --table -u dbclient -pxxxx GEKONYLOGDB -e "select now(),max(time_stamp) from metrics"

差出人mysql --help

  -t, --table         Output in table format.
于 2012-12-09T19:34:50.377 に答える
0

mysqlプログラムを呼び出すときにデフォルトで--tableオプションを有効にしたい場合は、このSO回答を確認してください。MySQLの結果をテーブル形式のファイルに保存する方法

于 2019-10-15T13:04:20.677 に答える