我有以下命令从mysql获取privillages列表
# mysql -u root -p -B -N -e"SHOW GRANTS FOR 'root'@localhost"
我想用Vuser变量替换'root',用VHost变量替换localhost,我无法判断双引号的结束位置以及如何放置$ Vuser和$ Vhost。
请有人指导......!
由于
答案 0 :(得分:2)
mysql -u root -p -B -N -e"SHOW GRANTS FOR '$Vuser'@'$Vhost'"
应该有效。 $ XXX变量由shell用双引号扩展。单引号不会受到伤害,因为在双引号内,它们会失去特殊意义。
答案 1 :(得分:2)
最简单的解决方案似乎是这样。没有单引号。双引号将所有内容保留在一个参数之后,它们也允许变量扩展:
mysql -u root -p -B -N -e "SHOW GRANTS FOR $Vuser@$Vhost"
正如@Guntram指出的那样,根据MySQL规范,$Vuser
周围的单引号是必要的。但它似乎没有那些,至少在MySQL 5.5.31。