Bash:MySQL更新TXT记录出错

时间:2016-10-13 09:16:53

标签: bash

我制作了一个Bash脚本,为我更新了一些DNS记录(我对Bash来说很新,所以请耐心等待。)

我的新记录如下:

NEW_TXT_CONTENT="v=spf1 a mx ip4:${NEW_IP} ~all"

但正确的DNS TXT记录应该有引号。所以我将我的新记录修改为:

NEW_TXT_CONTENT="\"v=spf1 a mx ip4:${NEW_IP} ~all\""

MySQL部分看起来像这样:

mysql -u root -pPassword dnszones -e "UPDATE records SET content=\"${NEW_TXT_CONTENT}\" WHERE id=\"${TXT_ID}\""

我收到以下错误代码:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'v=spf1 a mx ip4:10.10.10.10 ~all"" WHERE id="27591"' at line 1

看起来数据库收到错误的引号。

还有另一种逃避报价的方法吗?

更新

我发现我是否像这样编写变量

NEW_TXT_CONTENT="'v=spf1 a mx ip4:${NEW_IP} ~all'"

它可以在数据库中写入。但我不想使用单引号。 如果我反之亦然,那么变量${NEW_IP}将不会被解释。有一个简单的解决方案吗?

0 个答案:

没有答案