Command line JQ:如何指定函数名并包含文件作为输入参数?

Command line JQ:如何指定函数名并包含文件作为输入参数?,command-line,jq,Command Line,Jq,我想创建一个通用的SH脚本,它将被调用在JQ查询中间使用一个指定的函数。 1。如何按指定为命令行参数的名称调用函数? 这样做的简单方法是使用函数名生成字符串,而不是调用这样的函数: jq --arg query_function "foo_function" ' include "foo_function"; . | ($query_function)' \ input.txt 2。是否也可以指定一个要包含在JQ命令行参数中的文件? 我还尝试以一种简单的方式来实现它,但没有成功。

我想创建一个通用的SH脚本,它将被调用在JQ查询中间使用一个指定的函数。 1。如何按指定为命令行参数的名称调用函数?

这样做的简单方法是使用函数名生成字符串,而不是调用这样的函数:

jq --arg query_function "foo_function" '
  include "foo_function";
  . |
  ($query_function)' \
input.txt

2。是否也可以指定一个要包含在JQ命令行参数中的文件?


我还尝试以一种简单的方式来实现它,但没有成功。

jq函数名和模块名都不能指定为jq变量,因此要实现您似乎想要的,您必须求助于shell字符串插值或查找表达式

但是,值得注意的是,jq支持基于数组的路径表达式,因此可以使用jq变量支持某些类型的查找