Bash
bash 什麼時候退出導出 SHELL?
我將一個 Debian 盒子從 stable 升級到 Jessie,我注意到 SHELL 不再被導出,所以 screen 和類似的程序開始使用 dash 而不是 bash。
此更改是何時進行的,為什麼?
很久很久以前:
本文件詳細介紹了此版本 bash-2.05a-rc1 與先前版本 bash-2.05a-beta1 之間的更改。
- 對 Bash 的更改
…
w。Bash 不再自動導出 HOME、PATH、SHELL 或 TERM,即使如果它們沒有出現在初始環境中,它也會為它們提供預設值。
我不知道原因是什麼,但這是有道理的:如果未設置執行 bash 腳本,則沒有理由
SHELL
為劣質程序設置它。Bash 只導出PWD
(因為它應該這樣做,不管有什麼好處)、OLDPWD
(的伴侶PWD
)和SHLVL
(應該總是由 shell 設置)。原因
SHELL
通常設置為您的登錄 shell,因為它是由登錄程序( 、 等)在環境中設置login
的sshd
。在jessie中應該仍然是這種情況。如果沒有設置某些登錄方法SHELL
,那可能是登錄方法中的錯誤。