如何解决bash sqlcmd变量数组
我正在尝试在循环中从sqlcmd接收的变量中访问值:
while read line ;do AllNumbers=`sqlcmd -h -1 -S mysqlserver.localdomain -U Me -P MyPasswd -d master -Q "SET nocount on; SELECT PHONENUMBER FROM MYTABLE WHERE USER LIKE '"$line"' " < /dev/null`; for i in "$AllNumbers"; do echo "$line $i"; done; done< mytext.txt
变量“ $ AllNumbers”中的结果数可以为1到5,并且数字的长度也可以变化。 我得到的瞬间是:
约翰01234567
9876543
杰克13579024
吉姆08642135
10293847
56473829
最后,我想要一个输出:
约翰01234567
约翰98765432
杰克13579024
吉姆08642135
吉姆10293847
吉姆56473829
我尝试使用IFS,但是我不确定变量$ AllNumber中的分隔符是什么。 如果我这样做:
OneUser=`sqlcmd -h -1 -S mysqlserver.localdomain -U Me -P MyPasswd -d master -Q "SET nocount on; SELECT PHONENUMBER FROM MYTABLE WHERE USER LIKE '"Jim"' "`; echo "$OneUSer"
我得到:
08642135
10293847
56473829
我很高兴得到任何提示...
预先感谢
乐透
解决方法
为什么不要求数据库进行艰苦的工作?
SELECT USER,PHONENUMBER FROM MYTABLE WHERE USER LIKE '"$line"'
此外,请确保验证$ line以防止SQL注入攻击(请参阅Bobby Tables)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。