Bash - Backtick中的双引号

Geo*_*ndo 2 bash quotes double

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

if `grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"`; then
  ....
fi
Run Code Online (Sandbox Code Playgroud)

它基本上有效.除非$ {OVERRIDE_ACTIONS}中的路径的任何部分包含空格,否则grep将失败.我怎样才能使用包含空格的路径>

小智 8

删除反引号:

if grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"; then
    ...
fi
Run Code Online (Sandbox Code Playgroud)

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