用bash代替参数值

时间:2015-02-04 08:49:45

标签: 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", "$int2", "$int3"]'
+ data set net-agent interfaces '["$int1", "$int2", "$int3"]'

有关为什么不替换这些值的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

我猜测命令的参数应该是有效的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"}]'