所以我试图在makefile中运行一个jq命令来链接一些依赖项,我不明白do-done里面的行是什么。如果只使用echo" $$ dep"我理解发生了什么,但是当使用完整的代码行时([-f" $$ dep / package.json"]&& echo" $$ dep&# 34 ;;)我好像迷路了。有谁有想法吗?感谢。
jq -r '.dependencies,.devDependencies|keys[]' $< | while read -r dep; do \
[ -f "$$dep/package.json" ] && echo "$$dep"; \
done | (piping forward)
答案 0 :(得分:0)
由于这是makefile
,因此有两件事需要理解。首先,了解&#34; $$&#34;变量($$dep
),请参阅此stackoverflow问题:
其次,要理解do ... done
中的...,请记住这实际上等同于表格的条件shell:
if [ -f _ ] ; then echo _ ; fi
有关测试的详细信息,请参阅例如http://wiki.bash-hackers.org/commands/classictest