我想通过 bash 下的 mysql 命令将模式文件内容作为单个字段插入 MySQL 数据库。在mysql命令行下很容易做到。但我的情况是我想将它与几个动态变量一起使用。代码如下所示:(i 是服务的索引)
WSDL=`cat ${WSDL_FILE}`
WADL=`cat ${WADL_FILE}`
XSD=`cat ${XSD_FILE}`
ADD_SERVICE=$(eval echo "insert into Services set Name=\'\${SRV_LIST_${i}}\', Description=\'\${SRV_LIST_${i}_Description}\', Version=\'\${SRV_LIST_${i}_Version}\', Status=\'Active\', WSDL=\'\'\'${WSDL}\'\'\', WADL=\'\'\'${WADL}\'\'\', XSD=\'\'\'${XSD}\'\'\', CreatedBy=\'${USER}\', CreatedOn=NOW\(\), CreatedAt=\'${HOSTNAME}\';")
Result=$(mysql -umysql -pmysqlpasswd -D service_reg -e "${ADD_SERVICE}")
结果如下:
./ServiceRegistry.sh: eval: line 279: syntax error near unexpected token `newline'
./ServiceRegistry.sh: eval: line 279: `echo insert into Services set Name=\'${SRV_LIST_1}\', Description=\'${SRV_LIST_1_Description}\', Version=\'${SRV_LIST_1_Version}\', Status=\'Active\', WSDL=\'\', WADL=\'<?xml version="1.0" encoding="UTF-8"?>'
但是如果我将 WSDL、WADL 和 XSD 设置为空字符串,它就可以正常工作。有任何想法吗?谢谢。