以下是我正在尝试做的简化示例:
$ 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
答案 0 :(得分:1)
您只需在test2
命令中引用export
的参数扩展:
export test1="a bc"
export test2="test3=${test1}def"
export "$test2"
echo $test3
# output: a bcdef