![從 ~/.bash.rc 取得變數並在登出時保留它們](https://rvso.com/image/1288691/%E5%BE%9E%20~%2F.bash.rc%20%E5%8F%96%E5%BE%97%E8%AE%8A%E6%95%B8%E4%B8%A6%E5%9C%A8%E7%99%BB%E5%87%BA%E6%99%82%E4%BF%9D%E7%95%99%E5%AE%83%E5%80%91.png)
我一直在編寫一堆 bash 腳本,以便使用 CollabNet 的 SVN 客戶端和 GNOME Keyring Daemon(又名 GKD)實現非互動式、安全性、基於 cron 的 SVN 簽出,其中一個腳本旨在啟動 GKD,收集其輸出,本質上是幾個環境變量,並將這些變數匯出到腳本運行使用者的shell 中。所有這些都是在使用者登入時透過在 ~/.bashrc 中獲取 bash 腳本來實現的。
問題是這些環境變數不會被匯出,因為腳本正在子 shell 中運行,該子 shell 在完成後退出,並且環境變數將永久取消設定。
好吧,問題是如何永久設定這些變量,這意味著即使在登入-登出工作階段中它們也會被匯出並保持不變?
答案1
只需將變數回顯到主目錄(或其他地方)以 . (所以它在預設的 ls 視圖中是不可見的)。修改您的 .bashrc 以便在啟動時執行此 shell 腳本。
例子:
foo='What the heck'; echo "foo='$foo'" > ~/.startup.sh
然後將其放入 ~/.bashrc 中完成:
. ~/.startup.sh