Bash 将环境变量传播到ZSH
我正在使用以下命令调用脚本:Bash 将环境变量传播到ZSH,bash,zsh,Bash,Zsh,我正在使用以下命令调用脚本: zsh -c 'myscript' -- $args 其中myscript存在于通过.zshrc添加到我的路径的文件夹中。当我运行该命令时,zsh找不到myscript,因为路径被重置为默认路径 当我使用bash运行类似命令时: bash -c 'myscript' -- $args 找到了myscript,我假设路径是通过bash传递的 有没有办法强制路径和所有其他环境变量向下传播到zsh?区别不在于如何bash和zsh从其父级继承PATH(相同),但是在你的
zsh -c 'myscript' -- $args
其中myscript存在于通过.zshrc
添加到我的路径的文件夹中。当我运行该命令时,zsh找不到myscript,因为路径被重置为默认路径
当我使用bash运行类似命令时:
bash -c 'myscript' -- $args
找到了myscript
,我假设路径是通过bash传递的
有没有办法强制路径和所有其他环境变量向下传播到zsh?区别不在于如何
bash
和zsh
从其父级继承PATH
(相同),但是在你的.bashrc
和.zshrc
如何修改路径的问题上,我似乎无法重现这个问题。如果我将myscript
放入$HOME/foo
并将其添加到当前shell上的PATH
(PATH=$HOME/foo:$PATH
),则对zsh-c'myscript'
的任何后续调用都是成功的。因此,zsh似乎正确地继承了环境。在您的zsh配置中是否有任何地方将PATH设置为固定值,例如PATH=/somedir/bin:/usr/bin:/bin
而不是PATH=/somedir/bin:$PATH
?此外,启动非交互式zsh会话时通常不会读取~/.zshrc
,因此您可能需要检查~/.zshenv
和/etc/zshenv
。