0

我有一个相当简单的 bash 脚本。

#!/bin/bash
echo
echo What is the root statement for the new debate?
read body

echo
echo What is your mysql password?
read -s pass

echo
sql='INSERT
        INTO `Debate`   (`unblocked`,   `debaterId`,    `dirty` )
        VALUES          ('"'1'"',       '"'15'"',       '"'0'"' );
    INSERT
        INTO `Statement`    (`body`,            `debateId`,         `debaterId` )
        VALUES              ('"'"${body}"'"',   LAST_INSERT_ID(),   '"'15'"'    );'

#echo mysql -u resolution -p ${pass} -D resolution -e \"${sql//[^a-zA-Z0-9(),;\`\'_]/ }\"
mysql -u resolution -p ${pass} -D resolution -e \"${sql//[^a-zA-Z0-9(),;\`\'_]/ }\"

这意味着要做的事情应该很简单,但归结为“要求用户在终端上输入......使用提供的输入形成 sql 命令......在两个表中插入数据库。” 它的目的是在开发过程中将新的辩论添加到数据库中进行测试。

相反,mysql 会打印帮助,就像我使用过-?. 没有错误...只是帮助文本。当 mysql 命令回显到终端时,一切看起来都是正确的。如果我复制并粘贴回显的命令,它就可以正常工作。我搜索了谷歌和堆栈溢出,但没有发现任何关于此的内容。

U@H ~  mysql --version
mysql  Ver 15.1 Distrib 10.3.28-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
4

0 回答 0