执行使用带空格的属性构造的命令

时间:2015-12-14 12:09:20

标签: bash shell properties

以下是我正在尝试做的简化示例:

$ export test1="a bc"
$ export test2="test3=${test1}def"
$ echo $test2
test3=a bcdef
$ export ${test2}
$ echo $test3
a
$ export test2="test3=\"${test1}def\""
$ echo $test2
test3="a bcdef"
$ export ${test2}
-bash: export: `bcdef"': not a valid identifier

在这个例子中,我正在尝试使用具有空格的属性构造命令。如果我没有向属性添加转义引号,那么显然它会忽略第一个空格字符后的所有内容。如果我确实逃避了引号,那么就无法执行。

我如何配置它以便最终输出:

export ${test2}

给我

echo ${test3}

等于

a bcdef

1 个答案:

答案 0 :(得分:1)

您只需在test2命令中引用export的参数扩展:

export test1="a bc"
export test2="test3=${test1}def"
export "$test2"
echo $test3
# output: a bcdef