jq包括默认搜索路径

时间:2019-03-16 16:55:11

标签: jq module-search-path

我想将函数定义放在/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的情况下获得启动脚本包含搜索路径?

1 个答案:

答案 0 :(得分: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

提交报告