在 Ubuntu 16.10 上,我在 /etc/environment 文件中设置了系统范围的环境变量。该变量是一个长度为数千个字符的字符串(该字符串是一个以逗号分隔的小字母代码列表)。问题是环境变量被截断。
使用名为 X 的变量生成 /etc/environment 文件内容的 Python 代码:
fp = open('/etc/environment','w')
fp.write('X="' + ",".join([str(i) for i in range(2000)]) + '"')
fp.close()
注销shell,重新登录并显示环境变量
echo $X
在我的机器上,结果是:
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72
有人告诉我环境变量有 128K 的限制,但我的变量长度相对较小。谁能解释一下为什么它会被截断,更重要的是,我能做些什么来补救这种情况?
编辑: dpkg -l libpam-modules 的输出:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============================================-============================-============================-==================================================================================================
ii libpam-modules:amd64 1.1.8-3.2ubuntu2 amd64 Pluggable Authentication Modules for PAM
答案1
我不确定这是否正是 Mark 建议的,但我更新了 /etc/environment 文件,现在具有以下语法:
export X="1,2,..."
我在 /etc/profile 中添加了一行:
source /etc/environment
不知道这是否是好方法,但它确实有效。