我想用jq创建一个json
f=1
jq -n --argjson a ${f} '{"test":$a}'
字符串
或
f="1"
jq -n --argjson a ${f} '{"test":$a}'
型
或
jq -n --argjson a "teststring" '{"test":$a}'
型
工作正常
但
f="teststring"
jq -n --argjson a ${f} '{"test":$a}'
型
yields jq:传递给--argjson的JSON文本无效
我做错了什么?
干杯戈登
1条答案
按热度按时间mum43rcc1#
您的shell正在解释双引号并将空字符串传递给
jq
。定义输入的正确方法是添加一个额外的引用级别,使双引号成为值的一部分:
字符串
如图所示,您还需要在
$f
的使用前后加上引号,以防它包含空格。