mysql - 将变量中带有特殊字符的大文本传递给 MYSQL 时出错

标签 mysql bash

我有一个脚本,它通过 SSH 连接到远程主机,并在那里执行另一个脚本,将数据插入本地 MySQL 数据库。我传递了所有需要在 SSH 中插入的变量。除了 $textBody 变量外,一切正常。我认为问题是这个变量中有很多文本(包括可能导致错误的特殊字符)。

ssh -p 22 $user@$IP_ADDRESS "$SCRIPTMYSQL \"$taulaName\" \"$valueType\" \"$valueTitle\" \"$textBODY\" exit"

这是我得到的错误:

jailshell: -u: command not found
ERROR at line 1: Unknown command '\S'.

如果我在他的位置传递另一个不同于 $textBODY 的变量,则不会发生错误。

最佳答案

I'm passing double quotes inside the variable.

如果$textBODY不包含单引号',你可以使用它们:

ssh -p 22 $user@$IP_ADDRESS "$SCRIPTMYSQL \"$taulaName\" \"$valueType\" \"$valueTitle\" '$textBODY' exit"

(当然,这也适用于其他变量)。

关于mysql - 将变量中带有特殊字符的大文本传递给 MYSQL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30626270/

相关文章:

linux - Bash 导出并在脚本中使用带引号和空格的变量

linux - Bash 带点的 2 位小数

bash - 带美元和不带美元的双括号

mysql - 从数据库中删除多个值

php - 需要向 Codecharge 生成的 PHP/SQL 添加 Group By 语句

bash - mysqldump 数据库数据库名称中包含空格

mysql - H2 DB 的 UNIX_TIMESTAMP 函数等效吗?

mysql - 需要有关 4 个表的 SQL 查询的帮助

mysql - BASH - 使用存储在数组中的参数执行 mysql 命令

regex - grep 在 OSX 上的工作方式是否不同