bash eval方程的正确值不能包含空格

时间:2019-07-09 11:59:56

标签: bash eval

在bash shell脚本中,我想创建一系列变量并将字符串值分配给它们

a=aaa

eval $a="a b c"

结果:

b not found...

为什么正确的值不能包含空格?

2 个答案:

答案 0 :(得分:1)

这是因为eval $a="a b c"扩展为aaa=a b c

解决方案:

eval "$a=\"a b  c\""

# or better
printf "-v$a" "a b c"

答案 1 :(得分:1)

要使用eval进行变量分配时,您可以联系declare

$ declare "$a=a b c"
$ echo $aaa
a b c