0

我想通过以下方式用 eval 导出一个字符串。但是我在以下示例中得到了不带引号的字符串作为指示

root@linux:~# a="{\"name\":\"any\"}"
root@linux:~# echo $a
{"name":"any"}
root@linux:~# eval "export -- \"b=\"\"$a\"\"\""
root@linux:~# echo $b
{name:any} ------>> expect {"name":"any"}

如何解决这个问题呢?

4

2 回答 2

2

这对我有用:

$ a='{"name":"any"}'
$ echo $a
{"name":"any"}
$ export b="$a"
$ echo $b
{"name":"any"}

为什么要使用eval导出变量?注意,变量名也被插值了,所以你可以这样做:

$ foo=bar
$ export $foo=baz
$ echo $bar
baz
于 2013-08-22T16:11:09.753 回答
1

我将搁置我不太明白您为什么要这样做,但请尝试以下操作:

bash-3.2$ a="{\"name\":\"any\"}"
bash-3.2$ echo $a
{"name":"any"}
bash-3.2$ eval "export -- b='$a'"
bash-3.2$ echo $b
{"name":"any"}
bash-3.2$
于 2013-08-22T16:24:03.490 回答