在 Ubuntu 12.04 上,我定义了一个环境变量,/etc/environment如下所示:
FOO="value_before#value_after"
Run Code Online (Sandbox Code Playgroud)
当我通过 ssh 进入服务器检查值时,我得到了这个:
$ env | grep FOO
FOO=value_before
Run Code Online (Sandbox Code Playgroud)
我猜它正在将#视为评论并将其剥离,但是,这有效:
$ . /etc/environment
$ export FOO
$ env | grep FOO
FOO=value_before#value_after
Run Code Online (Sandbox Code Playgroud)
我试过这样逃避#:
FOO="value_before\#value_after"
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我只是得到了这个:
FOO=value_before\
Run Code Online (Sandbox Code Playgroud)
关于如何使散列被视为值的一部分的任何想法?任何帮助都会很棒。
我在/etc/environment文件中尝试过的值:
FOO='value_before#value_after'
FOO="value_before#value_after"
FOO='"value_before#value_after"'
FOO="value_before\#value_after"
FOO='value_before\#value_after'
Run Code Online (Sandbox Code Playgroud)
以及上述的其他各种组合。当您通常在 shell 中设置它们时,其中的很多都将起作用。但它们似乎在/etc/environment文件中不起作用。