Linux

為什麼在 .profile 中採購腳本不起作用?

  • July 17, 2018

我有一個可執行腳本,每次登錄或打開新的互動式 shell 時都想執行它。我添加了這個執行檔的路徑,.profile並通過將此行添加到.profile

source $HOME/bin/wrapper

重新啟動後,此腳本未執行。

為什麼.profile即使在重新啟動 Fedora 之後,bash 也不會執行腳本?

**編輯:**使問題更清楚

我進行了一些調查並了解到採購腳本.profile不起作用的兩個原因:

  1. 當您打開一個新的終端會話時,bash 將作為互動式非登錄 shell 執行。因為.profile只為非互動式登錄 shell 執行,所以啟動終端會話不會執行它。
  2. 雖然腳本是在登錄時由 獲取的.profile,但與在登錄時導出到子程序的PATH.profile環境變數不同,是一個命令,不能導出到從登錄時初始化的第一個 bash 實例開始的子程序。換句話說,source它是互動式的,並且需要在.bashrc其中是唯一在互動式非登錄 shell 中執行的啟動文件。

TL;DR.profile僅在登錄時獲取腳本一次,並且不會傳遞給終端會話的環境。因此,我通過將其放入來獲取腳本.bashrc

要回答上面的問題,我沒有~/.bash_profile,並且命令被添加到.profile

**獎勵:**由於這些原因,我假設設置的別名.profile也不起作用,因為它是每次在終端視窗中創建新環境時都需要執行的命令。

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