我有一堆自定义项,并希望在原始环境中运行我的测试程序。 当然,我可以使用一个小的shell脚本来包装和传递参数,但如果我只能调用一个pre和可能的post脚本,只有位于某些子目录下的命令,那将会很酷且很有用。我正在使用的shell是zsh。
答案 0 :(得分:1)
我不知道你在“原始环境”中包含了什么。
如果你想将自己与整个系统隔离开来,那么chroot可能就是你所追求的。您可以使用自己的/etc
,/bin
等设置一个完整的新系统,但与正在运行的系统共享内核,网络和其他非文件系统。 Root的合作是必需的(chroot
系统调用保留给root)。
如果要将自己与点文件隔离开来,请使用HOME
环境变量的不同值运行程序:
HOME=~/test-environment /path/to/test-program
HOME=~/test-environment zsh
如果这是关于zsh配置文件的具体内容,您可以在启动它之前设置ZDOTDIR
环境变量,告诉zsh从$HOME
以外的目录运行自己的点文件(或{{1不加载任何点文件)。
答案 1 :(得分:0)
如果通过 pristine environment 表示一组完全受控的环境变量,那么env
程序会执行此操作。
env -i PATH=$PATH HOME=$HOME program args
将使用 您指定的环境变量运行program args
。