Bash

bash 什麼時候退出導出 SHELL?

  • March 2, 2015

我將一個 Debian 盒子從 stable 升級到 Jessie,我注意到 SHELL 不再被導出,所以 screen 和類似的程序開始使用 dash 而不是 bash。

此更改是何時進行的,為什麼?

很久很久以前:

本文件詳細介紹了此版本 bash-2.05a-rc1 與先前版本 bash-2.05a-beta1 之間的更改。

  1. 對 Bash 的更改

w。Bash 不再自動導出 HOME、PATH、SHELL 或 TERM,即使如果它們沒有出現在初始環境中,它也會為它們提供預設值。

我不知道原因是什麼,但這是有道理的:如果未設置執行 bash 腳本,則沒有理由SHELL為劣質程序設置它。Bash 只導出PWD(因為它應該這樣做,不管有什麼好處)、OLDPWD(的伴侶PWD)和SHLVL(應該總是由 shell 設置)。


原因SHELL通常設置為您的登錄 shell,因為它是由登錄程序( 、 等)在環境中設置loginsshd。在jessie中應該仍然是這種情況。如果沒有設置某些登錄方法SHELL,那可能是登錄方法中的錯誤。

引用自:https://unix.stackexchange.com/questions/187602