1

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

手册

默认搜索路径是指定给 -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 的情况下拥有启动脚本包含搜索路径?

4

1 回答 1

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/问题

于 2019-03-16T17:24:36.313 回答