bash --norc --noprofile 的 $PATH 記錄在哪裡?

bash --norc --noprofile 的 $PATH 記錄在哪裡?

但是,如果我在乾淨的環境中運行 bash,我希望 PATH 為空:

odin ~ 210$ env -i bash --norc --noprofile 
bash-4.4$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.
bash-4.4$ uname -a
Linux odin 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
bash-4.4$ 

PATH 不為空。

我已經瀏覽了幾次文檔,但也許我錯過了一些東西。

我的問題:這個記錄在哪裡?

謝謝。

-E

答案1

我在 中發現了一些線索man bash

(1) 在 PATH 變數的文檔中:-

PATH 指令的搜尋路徑。它是一個以冒號分隔的目錄列表,shell 在其中尋找命令(請參閱下面的命令執行)。 PATH 值中的零長度(空)目錄名指示目前目錄。空目錄名稱可能顯示為兩個相鄰的冒號,或開頭或結尾的冒號。 預設路徑與系統相關,由安裝 bash 的管理員設定。常見的值是「/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin」。

(2) 在下列文件中command:-

command [-pVv] command [arg ...] 執行帶參數的命令,抑制正常的 shell 函數查找。僅執行內建指令或在 PATH 中找到的指令。 如果給出 -p 選項,則使用 PATH 的預設值執行命令搜索,以保證找到所有標準實用程式。

在 Ubuntu 18.04.2 上我得到相同的PATH變數。我注意到兩件事:-

  1. PATH包括.,但這通常是不明智的。
  2. 在新bash實例中,與正常配置一樣,declare -p PATH顯示未匯出,因此不會顯示在其環境清單中。PATHenvPATH

相關內容