使用引号中的密码通过命令行连接到 MYSQL

使用引号中的密码通过命令行连接到 MYSQL

我给出的命令行是 -p$3,它将接受密码,如果密码中没有 $,则可以使用,但如果密码中有 $,则 -p$3 不起作用。我们如何才能提示密码中包含 $ 的密码。

答案1

您需要在密码前后添加双引号

 my_pass="some_password"

 #or in the case you're getting the password from a command-line argument

 mypass="$1"
 mysql -u user -p"$mypass"

或者如果你$$的密码中有(bash 会根据其 PID 号进行评估),那么你必须在密码\前添加:$$

./script.sh some_arg1 some_arg2 some_pass_\$$ 

但请注意,以纯文本形式在命令行中将密码作为参数传递并不安全,因为该行可能会转到您的~/.bash_history

相关内容