Bash——反引号内的双引号

Posted

技术标签:

【中文标题】Bash——反引号内的双引号【英文标题】:Bash -- Double quotes within Backtick 【发布时间】:2011-11-17 13:53:02 【问题描述】:

我在 bash 脚本中使用以下条件:

if `grep -q "$ACTION_LABEL Action" "$OVERRIDE_ACTIONS"`; then
  ....
fi

它基本上可以工作。除非 $OVERRIDE_ACTIONS 中路径的任何部分包含空格,否则 grep 将失败。如何让它与包含空格的路径一起使用>

【问题讨论】:

【参考方案1】:

去掉反引号:

if grep -q "$ACTION_LABEL Action" "$OVERRIDE_ACTIONS"; then
    ...
fi

为什么? grep 将返回一个值 0 如果它成功地找到了你的模式的出现,或者 1 如果它失败了。如果条件评估为0,则将执行if 语句的主体。

【讨论】:

以上是关于Bash——反引号内的双引号的主要内容,如果未能解决你的问题,请参考以下文章

单引号中的双引号,反之亦然

如何删除多余的双引号,而不是使用bash脚本在一行文本中打开和关闭双引号

PHP中的双引号和单引号的应用

正则表达式用于选择花括号内的双引号而忽略外部的引号

如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?

如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?