通过将 $HOME 设置为测试目录的位置来测试主目录脚本

通过将 $HOME 设置为测试目录的位置来测试主目录脚本

我的 ~/bin 目录中有一组相互依赖的脚本,还有一个已开发的 ~/.vim 目录,其他子目录中还有一些其他库等。我一直使用 git 对所有这些进行版本控制,并且意识到使用克隆的存储库开发和测试新旧脚本、vim 插件等可能非常容易且有用,然后使用合并将工作代码拉入我的实际主目录。

最简单的方法似乎就是更改并导出 $HOME,例如

cd ~/testing;  git clone ~ home
export HOME=~/testing/home
cd ~
screen -S testing-home
# start vim, write/revise plugins, edit scripts, etc.
# test revisions

但是,由于我以前从未尝试过,我担心某些程序、环境变量等最终可能会使用我的实际主目录而不是导出的主目录。这是一个可行的策略吗?是否只有几个我应该注意的异常值?有没有更好的方法来做这种事?

答案1

问题在于,某些应用程序可能会选择忽略$HOME并直接查询用户数据库getpwent(3)。最安全的做法是创建一个全新的用户,然后使用susudo成为该用户,或者从另一个终端/VT 以该用户身份登录。

相关内容