bash导出变量在带有空格的另一个变量中声明

时间:2014-04-24 08:09:20

标签: bash variables export spaces

我有以下代码:

export VAR1=FINAL_VAL="\"--value1 --value2\""
export $VAR1

执行此操作后,我会期望FINAL_VAR = - value1 --value2,但在第二次导出时,我得到“bash:export:`--value2”':不是有效的标识符“,就像引号未检测到的那样正确,如果我执行

echo export $VAR1

我得到了

export FINAL_VAL="--value1 --value2"

如果将其复制并粘贴到控制台中,我将获得FINAL_VAR = - value1 --value2,但是当从export(export $ VAR1)或(`echo export $ VAR1`)执行时它不会导出。< / p>

它似乎不喜欢/检测引号,但我尝试了很多方法,但没有运气。

有人经历过这样的事情,可以告诉我如何解决这个问题吗?

事先感谢,

2 个答案:

答案 0 :(得分:0)

您必须export "$VAR1",请注意引号

答案 1 :(得分:0)

你可以摆脱错误

export: `--value2"': not a valid identifier 

简单引用:

export "$VAR1"

并且当你做

时它不会被导出
(export $VAR1) 

(`echo export $VAR1`) 

因为您要在子shell()中导出它,并在命令退出时立即存在。如果需要将一些变量导出到shell环境,则不应该使用它,因为subshel​​l(父shell的子代)无法修改父环境。