我想以下列方式导出带有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"}
如何解决这个问题?
答案 0 :(得分:2)
这对我有用:
$ a='{"name":"any"}'
$ echo $a
{"name":"any"}
$ export b="$a"
$ echo $b
{"name":"any"}
为什么要使用eval
导出变量?注意,变量名也是插值的,所以你可以这样做:
$ foo=bar
$ export $foo=baz
$ echo $bar
baz
答案 1 :(得分: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$