mysql-在BASH中创建一个SQL文件

我正在尝试使用bash创建一个sql脚本,但是每次循环迭代后我都会不断得到这一行

: 找不到相关命令

在Ubuntu和OSX上都是这种情况.

在此阶段,我不执行sql脚本,而只是尝试创建它.我缺少什么,这样它就不会尝试“执行”查询

PHPmyadmin中测试时查询很好
我不明白,如果我不执行实际的查询,而只是创建文本文件,为什么需要设置$PATH变量.

我使用的代码是:

sql="";

cat people.txt | while read line
do
    PW="my"$line"db";
    DB="test_"$line;

    $sql=$sql"CREATE DATABASE \`$DB\`;CREATE USER \`$line\`@\`localhost\`;SET PASSWORD FOR \`$line\`@\`localhost\` = PASSWORD(\"$PW\") ;GRANT ALL PRIVILEGES ON $DB.* TO \`$line\`@\`localhost\` IDENTIFIED BY \"$PW\";";

done

echo $sql > t1.sql;

我用于导入的列表:

bob123
john123
jane123

我得到的输出是:

./02_setup_MysqLdb.sh: line 14: =CREATE DATABASE `test_bob123`;createuser `bob123`@`localhost`;SET PASSWORD FOR `bob123`@`localhost` = PASSWORD("mybob123db") ;GRANT ALL PRIVILEGES ON test_bob123.* TO `bob123`@`localhost` IDENTIFIED BY "mybob123db";: command not found
./02_setup_MysqLdb.sh: line 14: =CREATE DATABASE `test_john123`;CREATE USER `john123`@`localhost`;SET PASSWORD FOR `john123`@`localhost` = PASSWORD("myjohn123db") ;GRANT ALL PRIVILEGES ON test_john123.* TO `john123`@`localhost` IDENTIFIED BY "myjohn123db";: command not found

解决方法:

您的变量分配中存在错误,应该是:

sql=$sql"CREATE DATABASE...

请注意,变量名称前缺少$-分配值时,变量不需要在名称前使用$.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...