繁体   English   中英

从bash脚本查询mysql

[英]query mysql from bash script

因此,我需要从文件中读取一堆ID号,并对每个ID号进行mysql查询。 我从这个开始:

#!/bin/bash
file="eidlist.txt"
while IFS= read -r line
do
    mysql --host <redacted> --user <redacted> --password=<redacted> -N -e "use netops;select m_mailname from footprints where m_empno=$line;"
done <"$file"

这可以工作并产生预期的输出。 现在,我需要执行相同的操作,但是使用不同的ID列表,并查询不同的字段。 由于我现在要查询的字段包含字母数字值(而前一个字段完全是数字),因此我需要将该值用mysql查询字符串中的引号引起来,并使用\\“进行转义,如下所示:

#!/bin/bash
file="pidlist0.txt"
while IFS= read -r line
do
    mysql --host <redacted> --user <redacted> --password=<redacted> -N -e "use netops;select m_mailname from footprints where m_stuid=\"$line\";"
done <"$file"

这不起作用-脚本不产生任何输出。 我究竟做错了什么?

当我在命令行上测试mysql命令(将$ line变量预填充为文件中的值之一)时,它可以工作,但是从脚本内部运行时,则不会产生任何输出。 这是怎么回事?

只需使用m_stuid ='$ line';“?或将double更改为single。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM