在 shell 腳本中使用時,source 指令不起作用

在 shell 腳本中使用時,source 指令不起作用

我正在使用一個安裝程序,它在~/.bash_profile文件中添加一個環境變數。

當我啟動碼頭伺服器時,它無法找到該條目...

當我跑步時

$ source ~/.bash_profile

它重新加載~/.bash profile文件並且伺服器成功啟動,沒有任何問題。

問題是我的客戶不會啟動新的 shell 會話,也不會手動刷新檔案~/.bash_profile

我嘗試source ~/.bash_profile在呼叫jetty伺服器的啟動腳本時呼叫的shell腳本中新增該命令,但它也不起作用。

還有其他方法可以重新載入~/.bash_profile目前會話嗎?您可以向我提供的任何資訊將不勝感激。

答案1

shell 腳本通常不是由 bash 運行(除非您明確安排了這一點)。

請注意,在許多 Linux 系統上 /bin/sh 現在是dash,而且由於 是source從 導入的非標準 shell 命令csh,因此像 dash 這樣的 shell 不支援它。

.只要您傳遞給它的檔案參數不包含非標準副檔名,POSIX 定義的點命令 ( ) 就應該可以運作。

相關內容