系統範圍的環境變數被截斷

系統範圍的環境變數被截斷

在 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

不知道這是否是好方法,但它確實有效。

相關內容