【发布时间】:2021-12-09 12:55:02
【问题描述】:
我有一个 shell 脚本,它接受 3 个参数,其中第一个和第二个是字符串,第三个是用双引号括起来的 JSON。下面是 shell 脚本和 args 示例的 sn-p:
文件 readinp.sh
param1=$1
param2=$2
param3=$3
echo "Param1 is $param1"
echo "Param2 is $param2"
echo "Param3 is $param3"
脚本执行:
./readinp.sh hello world "[{'ParamName':'HostName','ParamVal':'Host1'},{'ParamName':'TargetMachine','ParamVal':'Machine1'}]"
如何在我的 shell 脚本中以 JSON 格式访问第三个参数值?请帮帮我。
提前致谢
【问题讨论】:
-
你想从第三个参数中提取什么?从
readinp.sh来看,JSON只是$3中的一个字符串 -
@Fravadona - 我想将第三个参数作为 JSON 读取以进行进一步处理
-
如果你想访问 JSON 字符串的单个元素,那么你需要在你的 shell 脚本中或者使用像 jq 这样的工具来解析它。
-
好的,但这还不够明确;你想循环遍历 JSON 数组的每个对象吗?在您的问题中添加反映您正在尝试做的事情的伪代码;您可能无需太多 bash 代码就可以直接在
jq查询中执行此操作