使用bashshell从json对象中的数组转换值
bashshellunix
使用bashshell从json对象中的数组转换值,bash,shell,unix,echo,jq,Bash,Shell,Unix,Echo,Jq,我对壳牌公司完全陌生。。。。。让我解释
使用bashshell从json对象中的数组转换值 bashshellunix 使用bashshell从json对象中的数组转换值,bash,shell,unix,echo,jq,Bash,Shell,Unix,Echo,Jq,我对壳牌公司完全陌生。。。。。让我解释一下正确的用例。用例:-我在shell脚本中编写了两个get方法,当用户调用该脚本时,我将使用for循环对许多id执行一些操作。如下test_get1(){value1=//performing some operation and storing itvalue2=//performing some operation and storing it//below line I am converting the o/p of value1 我对壳牌公司完全陌生。。。。。让我解释一下正确的用例。用例:-我在shell脚本中编写了两个get方法,当用户调用该脚本时,我将使用for循环对许多id执行一些操作。如下
当我对上述arr_值进行echo时,我得到以下输出输出 我想将上面的值转换为json格式,如下所示
我试图用JQ来做,但无法得到正确的结果。 使用slurp选项:
in.json
out.json
使用slurp选项:
in.json
out.json
1)您现有的“value=”行可以简化为:
因为
总是将提供的值解释为字符串,并且因为jq表达式不需要遵循JSON的所有规则 2) 在脚本中,arr_值是JSON值的bash数组。要将其转换为JSON数组,您应该能够使用以下咒语:
3) 几乎可以肯定,有一种更好的方式来实现你的最终目标。如果您只想打一次电话给jq,可能会有所帮助。 1)您现有的“value=”行可以简化为:
因为
总是将提供的值解释为字符串,并且因为jq表达式不需要遵循JSON的所有规则 2) 在脚本中,arr_值是JSON值的bash数组。要将其转换为JSON数组,您应该能够使用以下咒语:
3) 几乎可以肯定UNIX Shell数组,有一种更好的方式来实现你的最终目标。如果您考虑只调用一次jq,可能会有所帮助。 发布实际有效的输入json结构您的输入
甚至不是有效的JSON@RomanPerekhrest我已经更新了question@umesh,
等等都是一种反模式——这是一种不好的做法,因为有些人复制了他们在为20世纪70年代的shell编写的脚本中看到的东西,这些脚本没有缓存路径查找。这里绝对没有价值——如果需要重写
,最好定义一个包装函数;使用变量只会降低可读性,并且(如果该变量包含绝对路径)会降低跨机器的可移植性。(…如果您的目标是在crond的默认路径不包含本地
二进制文件的位置的系统上运行cron作业,那么正确的做法是在crontab文件中定义一个路径;即,在规范之前添加一行
)。发布实际有效的输入json结构您的输入
甚至不是有效的JSON@RomanPerekhrest我已经更新了question@umesh,
等等都是一种反模式——这是一种不好的做法,因为有些人复制了他们在为20世纪70年代的shell编写的脚本中看到的东西,这些脚本没有缓存路径查找.这里绝对没有价值——如果需要重写
,最好定义一个包装函数;使用变量只会降低可读性,并且(如果该变量包含绝对路径)会降低跨机器的可移植性。(…然而,如果您的目标是从系统上的cron作业运行,其中crond的默认路径不包含本地
二进制文件的位置,那么正确的做法是在crontab文件中定义一个路径;即,在规范之前添加一行
)。 (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |