在bash shell脚本中,我想创建一系列变量并将字符串值分配给它们
a=aaa
eval $a="a b c"
结果:
b not found...
为什么正确的值不能包含空格?
答案 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