правильное значение не может включать в себя - PullRequest
0 голосов
/ 09 июля 2019

В сценарии оболочки bash я хочу создать серию переменных и присвоить им строковые значения

a=aaa

eval $a="a b c"

получается:

b not found...

Почему правильное значение не может содержать пробел?

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Вы можете обратиться к declare, если хотите использовать eval для назначения переменных.

$ declare "$a=a b c"
$ echo $aaa
a b c
1 голос
/ 09 июля 2019

Это потому, что eval $a="a b c" расширен до aaa=a b c

Решения:

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

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