我有这个脚本:
read PASS
mysql -u root -p "$PASS" < myfile.sql
如果我已经提供了密码,为什么我第二次提示输入mysql的密码?
答案 0 :(得分:1)
语法是:
mysql -u root -p"$PASS" < myfile.sql
在-p
或:
mysql -u root --password="$PASS" < myfile.sql
第一种语法的解释是在Documentation中。对于大多数选项,选项与其值之间的空格是可选的。但它说:
此规则的一个例外是指定MySQL密码的选项。此选项可以长形式提供--password = pass_val或--password。在后一种情况下(没有给出密码值),程序会提示您输入密码。密码选项也可以简短形式给出为-ppass_val或-p。但是,对于简短形式,如果给出密码值,则必须遵循选项字母而没有中间空格。原因是如果选项字母后面有空格,程序无法判断后面的参数是密码值还是其他类型的参数。