我想从bash脚本传递参数到mysql脚本。在bash脚本是从bash传递参数到mysql脚本
#!/bin/bash
for file in `ls *.symbol`
do
path=/home/qz/$file
script='/home/qz/sqls/load_eval.sql'
mysql -u qz -h compute-0-10 -pabc -e "set @pred = '$path'; source $script;"
done
的load_eval.sql是
use biogrid;
load data local infile @pred into table lasp
fields terminated by ','
lines terminated by '\n'
(score, symbols);
当运行bash脚本,我得到了错误的消息:
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 '@pred into table lasp ..
看来参数的值@ pred不会传入mysql脚本。
尝试回显mysql语句'echo“mysql ...”'并且看看您是否在语句中看到错误或可能在此发布回显以帮助 –
@qing您可以使用-x运行此脚本并显示输出?还要将mysql行更改为mysql --verbose -u qz -h compute-0-10 -pabc -e“set \ @pred ='$ path'; source $ script;”如果你可以发布到一个pastebin我相信我可以帮忙。 –
'path'是变量名的不好选择,因为它对shell有着特殊的含义,使用不同的名字,例如'filepath'或'fullname' –