如何在 zsh 中使用“emulate sh”来处理“.myscript.sh”?

Som*_*DOS 3 shell bash zsh

我一直在使用emulate sh -c ". $HOME/myscript.sh",到目前为止它正在工作。

但是,如果我在~并尝试去做emulate sh -c ". myscript.sh",我会得到.: no such file or directory: myscript.sh.. 为什么?

Gil*_*il' 6

如果.脚本$PATH不包含/. 这在 POSIX shell 和本机 zsh 中都是正确的,因此不出所料,在 zsh 的 sh 仿真模式中也是如此。

sourcebash 和 zsh 中的内置函数.除了不进行 PATH 查找之外,/在当前目录中查找不包含 a 的脚本名称之外,其他内容是相同的。

emulate sh -c 'source myscript.sh'
Run Code Online (Sandbox Code Playgroud)

或者

emulate sh -c '. ./myscript.sh'
Run Code Online (Sandbox Code Playgroud)