3

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

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

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

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

4

2 回答 2

1

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

[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS ${DB};""
于 2013-02-26T08:56:04.150 回答
0

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

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

改用 $(commands)。

mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS $('f-XXXX');"
于 2013-02-26T08:49:36.453 回答