Unix:不能在MySQL命令中使用反引号

时间:2013-02-26 08:45:26

标签: mysql unix ubuntu

我在bash(Ubuntu)中写了一个MySQL命令:

[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS `f-XXXX`;"

我需要在此命令中使用反引号,因为数据库名称是可变的。

该命令不起作用,它发送f-XXXX command not found 我认为我的问题与反引号有关。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您无需在此处使用反引号进行变量替换。

[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS ${DB};""

答案 1 :(得分:0)

Bash获取反引号的内容并使用该命令运行另一个bash进程。

这是一个反击。 反引号不是引号,它有非常特殊的含义。你在反引号之间输入的所有内容都是在主命令之前由shell评估(执行)的(如示例中的chown),并且该命令使用该执行的输出,就像你在那个地方输入那个输出一样命令行。

改为使用$(命令)。

mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS $('f-XXXX');"