我有一个相当简单的 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