我使用joey hess'myrepos工具來管理多個回購。將環境變量傳遞給myrepos(mr)
在某些時候,我想將環境變量傳遞給動作和段,以便它們得到擴展。特別是,我傳遞的內容如$SYNCTL
,它應該指向安裝存儲庫的頂級目錄。
(請注意,這有什麼做的頂級目錄由myrepos refered到:這就是頂級目錄上面這一切都應該被忽略,這是不同的)
不幸的是,這些變量沒有擴大。
舉例來說,如果我出口SYNCTL=/home/myuser
,然後定義回購:
[$SYNCTL/myrepo]
在.mrconfig
是從來沒有真正發現。 $SYNCTL
被擴展爲空,導致myrepos尋找/myrepo
,顯然不存在,所以myrepos只是忽略該部分。
我也試圖擴大可變回購部分裏面,像這樣:
[myrepo]
status = echo $SYNCTL
但是,這並不無論是打印出任何東西。在這種情況下,會發現回購,但會打印空白行。
有一些可以擴展的變量(如HOME
),但並非所有變量都可以工作。我認爲這與--force-env
有關,但運行mr --force-env status
也不打印任何東西。
有沒有辦法解決這個問題?應該有嗎?
我真的不知道關於myrepos的任何信息,但「找到了回購,但空白行被打印」聽起來像'SYNCTL'沒有正確導出。你可以仔細檢查一下(例如用'env | grep SYNCTL',假設它實際上是'env'程序,而不是你的shell內置的shell),它可以被導出,而不僅僅是在你的shell中定義的本地? –
就這麼簡單。謝謝! –