Environment-Variables

無法為 i3 exec 腳本初始化環境變數

  • September 7, 2019

我有一個名為 的腳本display,它使用feh. 它通過以下行執行此操作:

feh --bg-scale $WALLPAPER &

環境變數 $WALLPAPER 在我的.bashrc. 如果我在登錄後從普通 shell 執行腳本,則該腳本可以正常工作。

我希望腳本在啟動時由 i3 執行。因此,我將以下行添加到~/.config/i3/config

exec display

它不起作用。我試圖將 STDERR 重定向到一個文件,結果是:

feh: No loadable images specified.
See 'man feh' for detailed usage information

此外,如果我嘗試進入echo $WALLPAPERinside display,我會得到一個空行。所以環境變數還沒有初始化。很好 - 我試圖exec /bin/bash -c "source ~/.bashrc"在上面的行中添加,但這似乎沒有什麼區別。如何確保在 i3 啟動時初始化此變數?

這是在 Reddit 上為我解答的。問題是它.bashrc僅由 bash 載入 - 將環境變數放入~/.profile意味著它可以正確執行。

i3 是否由其他使用者執行,請嘗試提供源命令的絕對路徑,而不是使用 ~ 的相對路徑

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