【发布时间】:2014-08-26 13:37:29
【问题描述】:
所以当我运行这个脚本时
mysql -h $mysqlhost -u$mysqluser -p$mysqlpass --database=$mysqldatabase -se "INSERT into $mysqldatabase.$mysqltable (prodID,mergePerformed,mergeStartdate) values ($prodID,'Merge - ${FIX_VERSION} ${BRANCH_TO_MERGE} to ${PROJECT_NAME} trunk', now())";
我收到此错误
ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“Merge - ${FIX_VERSION} ${BRANCH_TO_MERGE} to ${PROJECT_NAME} trunk”附近使用正确的语法
任何人都知道为什么会这样......当 jenkins 中没有任何变量时它可以工作。
【问题讨论】:
-
在不了解 Jenkins 的情况下,我的第一个想法是变量替换不能像您期望的那样在字符串中工作。是否可以将语句放入变量并输出变量以确认它正在执行正确的替换?
-
试试这个:mysql -h $mysqlhost -u $mysqluser --password=$mysqlpass --database=$mysqldatabase -se "INSERT into $mysqldatabase.$mysqltable (prodID,mergePerformed,mergeStartdate) 值($prodID,'合并 - ${FIX_VERSION} ${BRANCH_TO_MERGE} 到 ${PROJECT_NAME} 主干', now())";
-
所以你的问题是“为什么变量没有在 Jenkins 中扩展”?在什么时候定义变量?您正在执行哪个构建步骤?执行
set命令时能看到变量吗? -
好像是PowerShell脚本,建议你打印命令并检查是否有没有正确赋值的变量值。
标签: mysql linux shell jenkins mysql-workbench