项目中一处脚本需要在bash中通过mysql命令行查询指定数据库、指定表、指定列的数据,通过以下命令可以完成交互:
local rcds="`mysql -hxxxx -Pxxxx -uxxxx -pxxxx -e "your select statements"`"
但是遇到一个问题是第一行返回的总是指定列的名字,所以这边一开始不得不在bash的while中跳过第一行,后面觉得这样处理太麻烦,简单看了一下mysql --help
,发现有下面这一个参数:
-N, --skip-column-names
Don't write column names in results.
即在mysql查询返回结果时不返回column names,顺便看到一个--no-pager
/--disable-pager
选项:
--no-pager
Disable pager and print to stdout. See interactive help(\h) also.
WARNING: option deprecated; use --disable-pager instead.
在交互式模式下,mysql查询数据如果超过一个页面,会使用PAGER环境变量中指定的程序来分页,如果不设定,默认使用less
,但在非交互式(脚本中内部调用)模式下,这个是不需要的,所以顺带在脚本中添加--disable-pager
选项(--no-pager已经废弃,不要使用)