我给出的命令行是 -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
。