在bash中替换参数值

在bash中替换参数值,bash,Bash,我无法替换bash命令中的参数值,如下所示: # echo $int1 {"id":"74953939-fd20-4472-8aaa-067e6f4c4106"} # echo $int2 {"id":"5ef4664d-3600-4df9-a6a9-01ffb0f49422"} # echo $int3 {"id":"6dc95c01-742e-4225-8298-e5750fe67f27"} # set -x # data set net-agent interfaces '["$int1

我无法替换bash命令中的参数值,如下所示:

# echo $int1
{"id":"74953939-fd20-4472-8aaa-067e6f4c4106"}
# echo $int2
{"id":"5ef4664d-3600-4df9-a6a9-01ffb0f49422"}
# echo $int3
{"id":"6dc95c01-742e-4225-8298-e5750fe67f27"}

# set -x
# data set net-agent interfaces '["$int1", "$int2", "$int3"]'
+ data set net-agent interfaces '["$int1", "$int2", "$int3"]'
你知道为什么这些值没有被替换吗


谢谢

我猜命令的参数应该是有效的JSON,在这种情况下,您应该删除每个变量周围的双引号,并将整个字符串用双引号括起来,以便展开变量:

data set net-agent interfaces "[$int1, $int2, $int3]"
使用
set-x
,这将生成:

$ data set net-agent interfaces "[$int1, $int2, $int3]"
+ data set net-agent interfaces '[{"id":"74953939-fd20-4472-8aaa-067e6f4c4106"}, {"id":"5ef4664d-3600-4df9-a6a9-01ffb0f49422"}, {"id":"6dc95c01-742e-4225-8298-e5750fe67f27"}]'

可能是因为您使用的是单引号,因此变量不会展开。尝试
数据集。。。“['$int1',…
抱歉,这没有帮助。这确实有帮助…我想你还有其他问题,但是…你甚至没有描述你想要什么。你需要明确你想做什么,以及为什么提供给你的建议没有帮助。