我想通过以下方式用 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"}
如何解决这个问题呢?
这对我有用:
$ a='{"name":"any"}'
$ echo $a
{"name":"any"}
$ export b="$a"
$ echo $b
{"name":"any"}
为什么要使用eval
导出变量?注意,变量名也被插值了,所以你可以这样做:
$ foo=bar
$ export $foo=baz
$ echo $bar
baz
我将搁置我不太明白您为什么要这样做,但请尝试以下操作:
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$