我有以下代码:
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>
它似乎不喜欢/检测引号,但我尝试了很多方法,但没有运气。
有人经历过这样的事情,可以告诉我如何解决这个问题吗?
事先感谢,
答案 0 :(得分:0)
您必须export "$VAR1"
,请注意引号
答案 1 :(得分:0)
你可以摆脱错误
export: `--value2"': not a valid identifier
简单引用:
export "$VAR1"
并且当你做
时它不会被导出(export $VAR1)
或
(`echo export $VAR1`)
因为您要在子shell()中导出它,并在命令退出时立即存在。如果需要将一些变量导出到shell环境,则不应该使用它,因为subshell(父shell的子代)无法修改父环境。