我尝试在bash脚本中执行一个mysql命令,但每次我都因为某种原因而失败。我尝试了几种方法,但似乎都不起作用(例如:〈〈查询...;查询)我选择了以下内容,但出现错误:
#!/bin/bash
mysql -utesting -pMypass -hlocalhost -D test DB -e "
SELECT value FROM h6_options
where module=cloud
AND `option`=prefix;"
I get the following error.
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='prefix'' at line 5
Any help is appreciated.
2条答案
按热度按时间n1bvdmb61#
您正在使用多行SQL语句。这意味着您有两个选项:
1.你可以把所有东西都放到一行里。
1.尝试重新格式化你的脚本以使用
EOF
标签代替.1.任何我没想到但这里的聪明人可以考虑的选择...
下面是一个例子:
为了你,我会这么做
注意:我不喜欢用EOF这个词...对我来说,我喜欢SQL或QUERY这个词,因为EOF表示文件结束。代码是相同的,所以你可以选择使用这个词:
来源:https://www.shellhacks.com/mysql-run-query-bash-script-linux-command-line/
5rgfhyps2#
原来问题出在反勾上。为了不评估这行,我不得不避开它们。