【问题标题】:Nested backticks in bash script not workingbash脚本中的嵌套反引号不起作用
【发布时间】:2011-03-22 09:04:45
【问题描述】:

我正在 bash 脚本中尝试以下操作:

COUNT=`cat "$NEWLIST" | wc -l | awk \' { print $1 } \` `

其中 NEWLIST 是一个包含文件列表的字符串,每行一个。但我得到这个错误:

command substitution: line 74: unexpected EOF while looking for matching `''

为什么会失败?如何使用嵌套反引号?

(基本上我试图从 wc 的结果中去除空格,但我也想知道如何使用嵌套反引号)

【问题讨论】:

    标签: bash backticks word-count


    【解决方案1】:

    这是您应该使用 $() 而不是反引号的原因之一。

    另外,不需要cat 或 AWK:

    COUNT=$(wc -l < "$NEWLIST")
    

    【讨论】:

    • 谢谢。我最初使用 awk 是因为在我的 Mac OSX 终端中, wc 正在生成前导空格。但是上面的表达式好像没有了。
    【解决方案2】:

    你正在混合 ' 和 `

    COUNT=`cat "$NEWLIST" | wc -l | awk ' { print $1 } ' `
    

    【讨论】:

      【解决方案3】:

      第二个“转义反引号”实际上应该是一个单引号,就像第一个一样。另外,请注意那里的$1

      【讨论】:

      • 为什么我需要小心 1 美元?
      猜你喜欢
      • 1970-01-01
      • 2018-05-07
      • 2011-02-09
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多