有没有办法包装位于shell脚本中的子目录下的任意命令

时间:2011-05-07 10:11:28

标签: zsh

我有一堆自定义项,并希望在原始环境中运行我的测试程序。 当然,我可以使用一个小的shell脚本来包装和传递参数,但如果我只能调用一个pre和可能的post脚本,只有位于某些子目录下的命令,那将会很酷且很有用。我正在使用的shell是zsh。

2 个答案:

答案 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