我遇到了一个问题,我的命令单独运行时是有效的,但是当与jq一起使用时,命令export test=test就不起作用了,但如果我只运行export test=test,它是有效的。
所以我有一个名为test.json的文件,内容如下:
{ "test":"test124","url":"google.com"}
所以我使用了这个命令:
jq -r 'to_entries | .[] | "export \(.key)=\(.value)"' test.json | sh
我检查了环境变量,但是什么也没有看到。
我尝试了这个命令:
jq -r 'to_entries | .[] | "\(.key)=\(.value)"' test.json | while IFS='=' read -r key value; do export "$key=$value"; ; done
问题依旧。
但如果我使用这个命令,它是有效的:
export test=$(jq -r .test test.json)
但我想要循环执行。
谢谢帮助。
解决方案: 缺少$(...)
$(jq -r 'to_entries | .[] | "export \(.key)=\(.value)"' test.json)