从bash脚本查询mysql
问题描述:
所以我需要从一个文件中读取一串ID号码并在它们每个上执行一次mysql查询。我开始与此:从bash脚本查询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';“ ?或者将双重更改为单一。
+0
有了第一个建议,它仍然没有输出,大概是因为用单引号变量没有被扩展,所以它在字面上搜索“$ line”,这不会产生任何结果。有了第二个建议,每行都会出现“第1行错误:未知命令”\“'。”,我不明白。 –
请给出确切的mysql命令,在你的命令行中没问题。 –