Linux
為什麼在 .profile 中採購腳本不起作用?
我有一個可執行腳本,每次登錄或打開新的互動式 shell 時都想執行它。我添加了這個執行檔的路徑,
.profile
並通過將此行添加到.profile
source $HOME/bin/wrapper
重新啟動後,此腳本未執行。
為什麼
.profile
即使在重新啟動 Fedora 之後,bash 也不會執行腳本?**編輯:**使問題更清楚
我進行了一些調查並了解到採購腳本
.profile
不起作用的兩個原因:
- 當您打開一個新的終端會話時,bash 將作為互動式非登錄 shell 執行。因為
.profile
只為非互動式登錄 shell 執行,所以啟動終端會話不會執行它。- 雖然腳本是在登錄時由 獲取的
.profile
,但與在登錄時導出到子程序的PATH.profile
環境變數不同,源是一個命令,不能導出到從登錄時初始化的第一個 bash 實例開始的子程序。換句話說,source
它是互動式的,並且需要在.bashrc
其中是唯一在互動式非登錄 shell 中執行的啟動文件。TL;DR
.profile
僅在登錄時獲取腳本一次,並且不會傳遞給終端會話的環境。因此,我通過將其放入來獲取腳本.bashrc
。要回答上面的問題,我沒有
~/.bash_profile
,並且源命令被添加到.profile
**獎勵:**由於這些原因,我假設設置的別名
.profile
也不起作用,因為它是每次在終端視窗中創建新環境時都需要執行的命令。