为什么我在 Linux 中尝试使用 bash 脚本从 MySQL 数据库检索数据时收到此错误?
我正在尝试从 MySQL 数据库检索电子邮件地址。
#!/bin/bash
MYSQLHOST="192.168.1.1"
MYSQLDB="nuni"
MYSQLUSER="root"
MYSQLPASS="rootpass"
MYSQLOPTS="--user=${MYSQLUSER} --password=${MYSQLPASS} --host=${MYSQLHOST} ${MYSQLDB}"
EMAIL=echo "SELECT email FROM Edsrn WHERE userid = 1235" | mysql ${MYSQLOPTS}
echo "E-mail: $EMAIL"
这有什么问题吗?我说“找不到命令”。请帮忙!
I am trying to retrieve email address from MySQL database.
#!/bin/bash
MYSQLHOST="192.168.1.1"
MYSQLDB="nuni"
MYSQLUSER="root"
MYSQLPASS="rootpass"
MYSQLOPTS="--user=${MYSQLUSER} --password=${MYSQLPASS} --host=${MYSQLHOST} ${MYSQLDB}"
EMAIL=echo "SELECT email FROM Edsrn WHERE userid = 1235" | mysql ${MYSQLOPTS}
echo "E-mail: $EMAIL"
What is wrong with it? I says "command not found". Please help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议改用
-e
参数来评估 SQL 语句。这应该就是您要寻找的内容:请注意,需要
tail
,因为 mysql 的输出如下所示:I recommend using the
-e
parameter to evaluate SQL statements instead. This should be what you're looking for:Note the
tail
is needed since the output from mysql looks like this:它尝试运行
“SELECT email FROM Edsrn WHERE userid = 1235”
,并将$EMAIL
设置为“echo”。如果您希望将命令的结果放入$EMAIL
中,那么您的语法就错误了。另外,BASH 常见问题解答条目 #50。
It's trying to run
"SELECT email FROM Edsrn WHERE userid = 1235"
with$EMAIL
set to "echo". If you wanted the result of your command to be put in$EMAIL
then you got the syntax wrong.Also, BASH FAQ entry #50.