#jq #module-search-path
#jq #модуль-search-path
Вопрос:
Я хотел бы поместить определение функции в /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:
Как я могу создать сценарий запуска и включить путь поиска без указания -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"
Postscript
Если вы считаете, что существует несоответствие между текущей версией jq (1.6) и соответствующей документацией наhttps://stedolan.github.io/jq/manual/v1.6 / пожалуйста, отправьте отчет по адресу https://github.com/stedolan/jq/issues
Комментарии:
1. Мне кажется, что проблема # 1666 не полностью охватывает диапазон проблем, с которыми вы столкнулись.