通过命令行传递一个包含 JSON 的变量作为函数的参数
Pass a variable containing a JSON as a parameter of a function by command line
我需要在需要 Openmediavault 命令的 JSON 中输入一个值。有问题的命令是这样的:
omv-rpc -u admin 'ShareMgmt' 'set' '{"name":"120GB","mntentref":"71fdbd90-ce16-4726-ad8d-35ba8664b4c6","reldirpath": "/","mode": "775","comment": "","uuid": "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}'
但是我需要引入另一个JSON,我已经保存在一个变量中了。我是这样安装的:
JSON_STRING=$( jq -n \
--arg referencia "$code_val" \
'{name:"120GB",mntentref:$referencia ,reldirpath: "/",mode: "775",comment: "",uuid: "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}')
退出echo $JSON_STRING:
{"name":"120GB","mntentref":"71fdbd90-ce16-4726-ad8d-35ba8664b4c6","reldirpath": "/","mode": "775","comment": "","uuid": "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}
现在我想构建第一个函数并发送我通过参数创建的JSON,但我不知道该怎么做,你能帮我一把?
我试过这种方法,但它出错了。我对 Debian 控制台命令知之甚少:
omv-rpc -u admin 'ShareMgmt' 'set' '{'echo $JSON_STRING'}'
您需要使用Shell Parameter Expansion访问变量:
omv-rpc -u admin 'ShareMgmt' 'set' "${JSON_STRING}"
我需要在需要 Openmediavault 命令的 JSON 中输入一个值。有问题的命令是这样的:
omv-rpc -u admin 'ShareMgmt' 'set' '{"name":"120GB","mntentref":"71fdbd90-ce16-4726-ad8d-35ba8664b4c6","reldirpath": "/","mode": "775","comment": "","uuid": "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}'
但是我需要引入另一个JSON,我已经保存在一个变量中了。我是这样安装的:
JSON_STRING=$( jq -n \
--arg referencia "$code_val" \
'{name:"120GB",mntentref:$referencia ,reldirpath: "/",mode: "775",comment: "",uuid: "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}')
退出echo $JSON_STRING:
{"name":"120GB","mntentref":"71fdbd90-ce16-4726-ad8d-35ba8664b4c6","reldirpath": "/","mode": "775","comment": "","uuid": "fa4b1c66-ef79-11e5-87a0-0002b3a176b4"}
现在我想构建第一个函数并发送我通过参数创建的JSON,但我不知道该怎么做,你能帮我一把?
我试过这种方法,但它出错了。我对 Debian 控制台命令知之甚少:
omv-rpc -u admin 'ShareMgmt' 'set' '{'echo $JSON_STRING'}'
您需要使用Shell Parameter Expansion访问变量:
omv-rpc -u admin 'ShareMgmt' 'set' "${JSON_STRING}"