【问题标题】:Back-ticks within double quotes双引号内的反引号
【发布时间】:2021-08-12 10:36:00
【问题描述】:
java -jar ngdbc.jar -c "SELECT Name as Title, Desc as Description FROM `table_name` "

我想在查询字符串中添加一个带有反引号的参数。但是,当我在终端中执行它时,首先执行反引号并显示 zsh: command not found: table_name。关于如何解决该问题的任何想法?

【问题讨论】:

  • 解决方法:不要在双引号内使用反引号,或者转义它们。他们应该被扩大。无论如何,在 SQL 语句中使用文字反引号的目的是什么?
  • @user1934428 这是某些 SQL 方言所需的语法。

标签: terminal syntax zsh double-quotes backticks


【解决方案1】:

反引号可以在双引号字符串中扩展。要么单独逃避反引号

java -jar ngdbc.jar \
   -c "SELECT Name as Title, Desc as Description FROM \`table_name\`"

或在整个参数中使用单引号

java -jar ngdbc.jar \
   -c 'SELECT Name as Title, Desc as Description FROM `table_name`'

在 shell 中,反引号是一种旧形式的命令替换。例如,

$ echo "Command substitution: `echo 3`"
Command substitution: 3

这相当于更新的、可嵌套的、更易读的形式$(...)

$ echo "Command substitution: $(echo 3)"
Command substitution: 3a

【讨论】:

    【解决方案2】:

    尝试使用这个

    java -jar ngdbc.jar -c "SELECT Name as Title, Desc as Description FROM ${table_name}"
    
    

    在 bash 或 zsh 终端中,反引号用于运行命令。

    【讨论】:

      猜你喜欢
      • 2011-11-17
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多