有没有更好的方法将字符串输出从jq传递给bash?

时间:2015-07-17 22:59:40

标签: jq

我刚刚发现了jq而且非常喜欢它。有一点我发现自己做了很多事情,比如:

result=$(jq --raw-output '.some | .filters // ""')
if [[ $result ]]; then
    foo
else
    bar
fi

默认为空字符串似乎比bash“真实性”更好地播放if [[ $result != "null" ]],并且通常需要raw-output来将结果字符串存储在变量中。我的问题是,我在脚本中如此一致地使用这两个调整,是否有更好的方法来实现相同的功能?或者是否有意义(作为对jq的可能增强)能够在脚本的持续时间内设置几个env变量来控制这种行为?

1 个答案:

答案 0 :(得分:6)

如果最后一个输出值不是-ejq,您可以使用0标记使false返回退出代码null,然后逻辑可能变成:

result=$(jq -e -r '.some | .filters') && foo || bar