我正在使用joey hess'myrepos工具来管理多个回购。
在某些时候,我想将环境变量传递给操作和部分,以便扩展它们。特别是,我正在传递像$SYNCTL
这样的东西,它应该指向安装了存储库的顶级目录。
(请注意,这与myrepos所指的顶级目录无关:这是顶级目录,超出该目标应该忽略所有内容,这是不同的。)
不幸的是,这些变量没有被扩展。
例如,如果我导出SYNCTL=/home/myuser
然后定义repo:
[$SYNCTL/myrepo]
.mrconfig
中的
从未真正找到过。 $SYNCTL
被扩展为空,导致myrepos查找/myrepo
,这显然不存在,所以myrepos会忽略该部分。
我还尝试在repo部分中扩展变量,如下所示:
[myrepo]
status = echo $SYNCTL
但是也没有打印任何东西。在这种情况下,会找到repo,但会打印一个空白行。
有些变量可以扩展(例如HOME
),但并非所有变量都可以工作。我认为它与--force-env
有关,但是运行mr --force-env status
也不会打印任何内容。
有什么方法可以解决这个问题吗?应该有吗?
答案 0 :(得分:2)
确保导出mouseleave
环境变量。例如,在SYNCTL
- 相似,而不是
bash
仅定义shell局部变量,使用
SYNCTL=$HOME/reponame
创建一个将由衍生进程继承的环境变量。