如何设置从systemd中的单引号开始的环境值

我试图设置以下在我的systemd的服务文件

Environment=SETTINGS=\'{"a"=1}\' 

但似乎这两个单引号已被删除,所以我得到{“a”= 1}作为环境variables的值SETTINGS

我如何正确设置?

这适用于我:

 $ cat /run/user/1000/systemd/user/envtest3.service [Service] Environment=SETTINGS=\'{"a"=1}\' Environment=SETTINGS2='{"a"=1}' Type=oneshot ExecStart=/bin/env 

然后

 $ systemctl --user start envtest3.service $ journalctl --user -n 2 -- Logs begin at wto 2014-05-27 15:33:38 EDT, end at sob 2014-10-04 11:44:13 EDT. -- paź 04 11:44:13 fedora21 env[27607]: SETTINGS='{"a"=1}' paź 04 11:44:13 fedora21 env[27607]: SETTINGS2='{"a"=1}' 

正如你所看到的,variables设置正确。

你也可以在单元中使用这些variables:

 ... ExecStart=/bin/echo ${SETTINGS} ${SETTINGS2} ExecStart=/bin/echo $SETTINGS $SETTINGS2 

这里有令人惊讶的事情:

 paź 04 14:27:50 fedora21-amd64 echo[30304]: '{"a"=1}' '{"a"=1}' paź 04 14:27:50 fedora21-amd64 echo[30306]: {"a"=1} {"a"=1} 

用大括号扩展不会剥去报价,但另一个。 我不确定这是不是一个错误。 手册页说“分割空白”。

编辑:我是runninng最新的git(v216-456-gba58907547)。