【问题标题】:jq include default search pathjq 包含默认搜索路径
【发布时间】:2019-03-16 16:55:10
【问题描述】:

我想在 /usr/lib/jq/mytest.jq 中放置一个函数定义,以包含在我的 jq 脚本中。

来自manual

默认搜索路径是给-L的搜索路径 命令行选项,否则 ["~/.jq", "$ORIGIN/../lib/jq", "$ORIGIN/../lib"].

既然 jq 在 /usr/bin 中, /usr/bin/../lib/jq 不应该在搜索路径中吗?我无法让这个命令工作:

jq -n 'include "mytest";'

在命令中添加 -L /usr/lib/jq 可以,或者我可以创建一个 ~/.jq/mytest.jq 并且也可以。但是,我想使用 ~/.jq 文件进行启动。我怎样才能有一个启动脚本一个包含搜索路径而不在命令行上指定-L??

【问题讨论】:

    标签: jq module-search-path


    【解决方案1】:

    如何在命令行中不指定 -L 的情况下获得启动脚本和包含搜索路径?

    使用模块元数据功能,例如:

    include "mytest" {"search": "/usr/local/lib/jq"}; 
    

    插图

    $ cat /usr/local/lib/jq/mytest.jq
    def go: "hello";
    
    $ jq -n 'include "mytest" {"search": "/usr/local/lib/jq"}; go'
    "hello"
    

    后记

    如果您认为当前版本的 jq (1.6) 与https://stedolan.github.io/jq/manual/v1.6/ 的相应文档不匹配 请提交报告至https://github.com/stedolan/jq/issues

    【讨论】:

    • 在我看来,Issue #1666 并没有完全涵盖您遇到的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多