/etc/environment 中的哈希(“#”)符号导致字符串被分割

Moh*_*har 4 linux shell ubuntu command-line

我正在尝试通过以下方式向我的系统添加环境变量

sudo nano /etc/environment
Run Code Online (Sandbox Code Playgroud)

该值是一个包含哈希值的长字符串#

包含后#,字符串存储不完整;之后的字符#消失了。

如果没有#包含,字符串将被完全存储。

我尝试将字符串包装在" "

MY_VARIABLE="34534554345 # DFGDGDFG"
Run Code Online (Sandbox Code Playgroud)

我希望变量能够被完全存储,如下所示:

34534554345#DFGDGDFG
Run Code Online (Sandbox Code Playgroud)

不是这个:

34534554345
Run Code Online (Sandbox Code Playgroud)

Eri*_*dek 5

PAM 解释/etc/environment,而不是 shell。它的目的是使KEY=VALUE每一行都很简单,不需要引号。#标记一条评论,没有办法逃脱它。

您可以使用/etc/profile它来定义环境变量。在大多数情况下,它应该使其在系统范围内可用。

/etc/environment

TEST2="12345#6789"
Run Code Online (Sandbox Code Playgroud)

/etc/profile

export TEST="12345 #6789"
Run Code Online (Sandbox Code Playgroud)

结果:

root@tempmon:~ $ env|grep TEST
TEST=12345# 6789
TEST2=12345
Run Code Online (Sandbox Code Playgroud)