我无法调试以下语法错误的原因: -
inventory.sh:第94行:意外令牌('
inventory.sh: line 94:
附近的语法错误query_string =“INSERT INTO instance_detail(instance_id,region)values('$ {instance [n]}','$ i');” “
我的脚本中第94行附近的代码是
for k in "${instance[@]}";
do
query_string="INSERT INTO instance_detail ( instance_id, region ) values ('${instance[n]}' , '$i');" (LINE:94)
`echo "$query_string" | mysql -D $MYDB -u$MYUSER`
done
n=$n+1
完成
sql中的相同插入查询运行正常。请建议!!!
答案 0 :(得分:0)
query_string="INSERT INTO instance_detail ( instance_id, region ) values ('$instance[n]' , '$i');"
OR
query_string="INSERT INTO instance_detail ( instance_id, region ) values ('${k}' , '$i');"
OR
query_string="INSERT INTO instance_detail ( instance_id, region ) values (${k} , '$i');"
OR
尝试在变量中分配值并尝试使用它
答案 1 :(得分:0)
如果instance
数组包含instance_ids列表而您不关心SQL injection,则不需要for循环。
sql="INSERT INTO instance_detail (instance_id, region) values ('%s', '$i');\n"
printf "$sql" "${instance[@]}" | mysql -D $MYDB -u$MYUSER
printf命令将重复使用格式化模板,并根据需要多次使用格式化模板,以消耗它给出的所有参数。