下面的代码在命令行上工作
mysql --user='myusername' --password='mypassword' --database='mydatabase' --execute='DROP DATABASE myusername;
CREATE DATABASE mydatabase;'
字符串
但是,它在执行时对bash文件不起作用
#!/bin/bash
user=myusername
password=mypassword
database=mydatabase
mysql --user='$user' --password='$password' --database='$database' --execute='DROP DATABASE $user; CREATE DATABASE $database;'
型
我收到以下错误:
错误1045(28000):访问被拒绝为用户'$user'@'localhost'(使用密码:YES)
如何让bash文件像命令行一样运行?
3条答案
按热度按时间xiozqbni1#
要在bash中扩展变量,请使用双引号(即
"
),参见SC2016,例如:字符串
eh57zj3b2#
这一个工作,双引号时,$user和$password是外面的单引号。单引号时,在一个单引号语句。
字符串
wi3ka0sx3#
我写了一个shell脚本,它将从属性文件中读取数据,然后在shell脚本上运行mysql脚本。分享这可能会对其他人有帮助。
字符串