我需要一个变量来保存从数据库中检索到的结果。到目前为止,这基本上是我正在尝试但没有成功的方法。
myvariable=$(mysql database -u $user -p $password | SELECT A, B, C FROM table_a)
如您所见,我对bash命令的理解不是很好。
我对MySQL命令行界面了解不多,但是假设您只需要帮助,可以尝试像下面这样交换命令:
myvariable=$(echo "SELECT A, B, C FROM table_a" | mysql database -u $user -p$password)
它将字符串回显到MySQL。或者,您可以更喜欢并使用一些新的bash功能(here字符串)
myvariable=$(mysql database -u $user -p$password<<<"SELECT A, B, C FROM table_a")
结果相同(假设您使用的是最新的bash版本),而没有涉及echo。
请注意,-p $ password不是错字,而是MySQL期望通过命令行输入密码的方式(选项和值之间没有空格)。
请注意,myvariable将包含MySQL在标准输出上输出的所有内容(通常是除错误消息以外的所有内容),包括任何和所有列标题,ASCII艺术框架等,可能不是您想要的。
编辑: 如前所述-e,MySQL 似乎有一个参数,我肯定会这么做。
-e