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

Zsh 有没有办法在shell脚本中包装位于子目录下的任意命令,zsh,Zsh,我有很多自定义项,希望在一个原始的环境中运行我的测试程序。 当然,我可以使用一个很小的shell脚本来包装和传递参数,但如果我可以只对位于某些子目录下的命令调用pre脚本,也可能是post脚本,那将是非常酷和有用的。我使用的shell是zsh。我不知道您的“原始环境”中包含了什么 如果你想把自己从整个系统中孤立出来,那么也许这就是你所追求的。您可以使用自己的/etc、/bin等设置一个完整的新系统,但可以与您运行的系统共享内核、网络和其他非文件系统内容。需要Root的合作(Root保留chroo

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

我不知道您的“原始环境”中包含了什么

如果你想把自己从整个系统中孤立出来,那么也许这就是你所追求的。您可以使用自己的
/etc
/bin
等设置一个完整的新系统,但可以与您运行的系统共享内核、网络和其他非文件系统内容。需要Root的合作(Root保留
chroot
系统调用)

如果要将自己与点文件隔离,请使用
HOME
环境变量的不同值运行程序:

HOME=~/test-environment /path/to/test-program
HOME=~/test-environment zsh
如果这是专门针对zsh的配置文件的,则可以在启动之前设置
ZDOTDIR
环境变量,让zsh从
$HOME
以外的目录运行自己的点文件(或
zsh--no rcs
不加载任何点文件).

如果您所说的原始环境指的是一组完全受控的环境变量,那么
env
程序会执行此操作

env -i PATH=$PATH HOME=$HOME program args
将仅使用指定的环境变量运行
程序args