Environment-Variables

在啟動時啟動的 Slackware 腳本需要設置來自 /etc/profile.d/* 的環 境變數

  • June 13, 2010

嘿,我有這個問題,在啟動時從 rc.local 啟動的腳本在啟動時沒有設置環境變數(在 /etc/profile.d/* 中定義)。我該怎麼辦 ?


“su - lisak -c /opt/atlassian-jira-enterprise-4.1.1-standalone/bin/startup.sh”

“su - lisak -c /opt/aaa2/at-22/bin/startup.sh”


at 的腳本/etc/profile.d/*是在它們自己的 shell 中執行的,而不是從原始碼中執行的,因此它們設置的環境變數無論如何都不可用。您需要哪些變數?你可以利用/etc/environment嗎?var=value您可以將變數以適當腳本的格式寫入文件並在腳本中獲取該文件rc.local嗎?

這來自 Bash 手冊頁。您可能會發現它很有幫助。

當 bash 以非互動方式啟動時,例如執行一個 shell 腳本,它會在環境中查找變數 BASH_ENV,如果它出現,則擴展其值,並將擴展值用作要讀取和執行的文件名. Bash 的行為就像執行了以下命令:if

$$ -n “$BASH_ENV” $$; 然後 。"$BASH_ENV"; fi 但 PATH 變數的值不用於搜尋文件名。

Bourne shell 類似地使用該ENV變數。

引用自:https://serverfault.com/questions/150841