从命令行把数值传给jq时,使用arg会得到字符串,即使内容看起来是数字。需要JSON数值、布尔或对象时,应理解argjson的解析行为,并按业务要求选择类型。

先明确想构造哪种JSON
下方第一条命令使用arg,第二条使用argjson;两条都用单引号保护jq程序中的美元符号。arg把3绑定为字符串,argjson把合法JSON文本3绑定为数字,输出看起来相似,类型却不同。
让参数接口处理转义
不要将用户输入直接拼进jq程序源码。使用参数绑定,可以让含引号或空格的文字作为数据传递。argjson则要求输入本身是合法JSON,普通未加JSON引号的文字会失败,不是万能字符串入口。
验证类型和失败状态
本站用子进程参数列表验证字符串3与数字3的区别,也检查无效JSON会失败。下面两个命令仅处理固定值;真实脚本应同时检查退出状态,不能在参数解析失败后继续使用旧输出文件。
资料与继续学习
jq官方手册:arg与argjson。资料查阅日期:2026年10月7日。步骤与练习由本站整理。
jq -n --arg count 3 '$count'
jq -n --argjson count 3 '$count'
资料查阅与编辑日期:2026年10月7日。作者:玖柒。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






