Mysql SQL插入bash

Mysql SQL插入bash,mysql,sql,bash,insert,Mysql,Sql,Bash,Insert,我是MySQL新手,我想在表中插入来自bash脚本的内容。从google找到了一些方法,它可以用于简单的命令select*from foo,但不适用于我的insert #!/bin/bash qry="INSERT INTO `video`.`asdf` (`DB_ID` , `LNX_ID` , `STIME` , `ETIME` , `TEXT` ) VALUES ( NULL , '5', '00:00:41.900', '00:00:49.600', 'Na leteckej v23

我是MySQL新手,我想在表中插入来自bash脚本的内容。从google找到了一些方法,它可以用于简单的命令select*from foo,但不适用于我的insert

#!/bin/bash

qry="INSERT INTO  `video`.`asdf` (`DB_ID` , `LNX_ID` , `STIME` , `ETIME` , `TEXT` ) VALUES ( NULL , '5', '00:00:41.900', '00:00:49.600', 'Na leteckej v23423.');"

mysql --host=localhost --database 'video' --user=user --password=password << eof
$qry
eof

非常感谢。

在没有看到错误消息的情况下,直接的假设是bash正在尝试在backticks中执行命令,因为您已经双引号引用了分配给qry的字符串,并且没有发现任何命令视频,例如,它打印了一个错误

$ echo "This will show the date if I do `date` in backticks"
> This will show the date if I do Sat Jun 29 22:09:59 CDT 2013 in backticks
在双引号字符串中使用反斜杠转义反勾号,以防止bash尝试对其求值

qry="INSERT INTO  \`video\`.\`asdf\` (\`DB_ID\` , \`LNX_ID\` , \`STIME\` , \`ETIME\` , \`TEXT\` ) VALUES (    NULL , '5', '00:00:41.900', '00:00:49.600', 'Na leteckej v23423.');"
但是,没有列和表名,因此根本不需要引用

qry="INSERT INTO  video.asdf (DB_ID , LNX_ID , STIME , ETIME , TEXT) VALUES (NULL , '5', '00:00:41.900', '00:00:49.600', 'Na leteckej v23423.');"

另一种选择是在外部字符串上使用单引号,但这将需要非常笨拙的引号才能在插入的列值上保持单引号,

您收到的错误消息是什么?谢谢您的帮助。非常感谢。