0

我无法调试以下语法错误的原因:-

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 中的相同插入查询运行良好。好心推荐!!!

4

2 回答 2

0
query_string="INSERT INTO instance_detail ( instance_id, region ) values ('$instance[n]' , '$i');"  

或者

query_string="INSERT INTO instance_detail ( instance_id, region ) values ('${k}' , '$i');" 

或者

query_string="INSERT INTO instance_detail ( instance_id, region ) values (${k} , '$i');"   

或者

尝试在变量中分配值并尝试使用它

于 2013-09-25T13:32:18.330 回答
0

如果instance数组包含一个 instance_id 列表并且您不关心SQL 注入,则不需要 for 循环。

sql="INSERT INTO instance_detail (instance_id, region) values ('%s', '$i');\n"
printf "$sql" "${instance[@]}" | mysql -D $MYDB -u$MYUSER

printf 命令将根据需要多次重用格式化模板,以使用它给出的所有参数。

于 2013-09-25T21:39:54.803 回答