我在bash(Ubuntu)中写了一个MySQL命令:
[XXXX:~]$ mysql -h localhost -u XXXX -pXXXX -e "DROP DATABASE IF EXISTS `f-XXXX`;"
我需要在此命令中使用反引号,因为数据库名称是可变的。
该命令不起作用,它发送f-XXXX command not found
我认为我的问题与反引号有关。我该怎么办?
答案 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');"