使用jq从package.json中提取有关依赖项的信息

使用jq从package.json中提取有关依赖项的信息,json,node.js,bash,makefile,jq,Json,Node.js,Bash,Makefile,Jq,因此,我试图在makefile中运行一个jq命令来链接一些依赖项,但我不理解do中的行是做什么的。如果只使用echo“$$dep”,我理解发生了什么,但是当使用整行代码([-f“$$dep/package.json”]&&echo“$$dep”;)时,我似乎迷路了。有人知道吗?谢谢 jq -r '.dependencies,.devDependencies|keys[]' $< | while read -r dep; do \ [ -f "$$dep/package.json"

因此,我试图在makefile中运行一个jq命令来链接一些依赖项,但我不理解do中的行是做什么的。如果只使用echo“$$dep”,我理解发生了什么,但是当使用整行代码([-f“$$dep/package.json”]&&echo“$$dep”;)时,我似乎迷路了。有人知道吗?谢谢

jq -r '.dependencies,.devDependencies|keys[]' $< | while read -r dep; do \
    [ -f "$$dep/package.json" ] && echo "$$dep"; \
done | (piping forward)
jq-r'.dependencies、.devDependencies | keys[]'$<|而read-r dep;做\
[-f“$$dep/package.json”]&echo“$$dep”\
完成|(管道向前)

由于这是在
生成文件中,因此有两件事需要理解。首先,要了解“$$”变量(
$$dep
),请参阅此stackoverflow问题:

第二,了解。。。在
do中。。。完成
,请记住这本质上等同于以下形式的shell条件:

if [ -f _ ] ; then echo _ ; fi
有关测试的详细信息,请参见,例如

,这里的
[-f“$$dep/package.part]
正在检查该文件是否存在?