Environment-Variables
無法為 i3 exec 腳本初始化環境變數
我有一個名為 的腳本
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 $WALLPAPER
insidedisplay
,我會得到一個空行。所以環境變數還沒有初始化。很好 - 我試圖exec /bin/bash -c "source ~/.bashrc"
在上面的行中添加,但這似乎沒有什麼區別。如何確保在 i3 啟動時初始化此變數?
這是在 Reddit 上為我解答的。問題是它
.bashrc
僅由 bash 載入 - 將環境變數放入~/.profile
意味著它可以正確執行。
i3 是否由其他使用者執行,請嘗試提供源命令的絕對路徑,而不是使用 ~ 的相對路徑