我遇到了shell脚本问题。
由于某种原因,我在双引号\
之前使用了(")
字符,如我的shell脚本的以下行所示。
sql2 = \“将所有on $ $ {db_name}。*授予\ $ {db_user} @ \ $ {host},由\ $ {dbpass}; \”;
标识
但是在MySQL“grant”命令语法中,我需要在\${dbpass}
之前和之后放置双引号,这是我在上面给出的shell脚本行的一部分。当我这样说时,{{ 1}},它在执行期间抛出语法错误。我应该解决这个问题。
这是一次更新 这是我想要运行的shell脚本。
ssh -t qbadmin@10.3.2.0'
su root -c“
echo \“给出数据库名称:\”;
读取db_name;
echo \“给密码:\”;
读db_pass;
主机=本地主机;
sql1 = \“create database \ $ db_name; \”;
sql2 = \“将所有on $ $ {db_name}。*授予\ $ {db_name} @ \ $ {host}由\”\ $ {db_pass} \“; \”; < SQL3 = \ “\ $ {SQL1} \ $ {SQL2} \”;
echo \“============== \”;
mysql -u root -p -e \“\ $ {sql3} \”;
“
“
请参阅此脚本,并请告知我需要对此进行必要的更改。
感谢。
答案 0 :(得分:0)
试试这个
db_name="yourdbname"
db_user="yourdbuser"
host="yourhost"
dbpass="yourdbpass"
sql2="grant all on ${db_name}.* to ${db_user}@${host} identified by ${dbpass};"
echo $sql2 | mysql -u yourusername -pmysql