JQ включить путь поиска по умолчанию - PullRequest
0 голосов
/ 16 марта 2019

Я хотел бы поместить определение функции в /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 в командной строке ??

1 Ответ

1 голос
/ 16 марта 2019

Как получить сценарий запуска и включить путь поиска без указания -L в командной строке?

Используйте функцию метаданных модуля, например ::100100

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

...