我想使用bash脚本运行mysql命令,但由于带有重音符号(`)而出现语法错误。

mysql -u root -p -e "GRANT ALL PRIVILEGES ON `testuser\_%` . * TO 'testuser'@'%';"

Let MySQL users create databases, but allow access to only their own databases

bash: testuser_%: command not found...Enter password:ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* TO 'testuser'@'%'' at line 1

好像bash混淆了这部分`testuser\_%`
有什么建议么?

最佳答案

在Shell世界中,如果您在定界符方面遇到麻烦,请添加更多反斜杠:

"GRANT ALL PRIVILEGES ON \`testuser\_%\` .  * TO 'testuser'@'%';"


那应该解决问题。

未转义的`字符表示"execute this command and inline the result"

关于mysql - 使用bash脚本运行带有重音符号(`)的MySQL命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46894584/

10-11 11:37