标题应该说明一切。我正在寻找相当于${BASH_SOURCE[0]}
in zsh.
Note:我不断地寻找“$0
相当于${BASH_SOURCE[0]}
” 在互联网上流传甚广,但这似乎是错误的:$0
似乎是执行命令的名称。 (它是argv[0]
,这是有道理的。)在我的脚本中回显 $0 (.zshrc
) gives zsh
for $0
,这与什么不一样${BASH_SOURCE[0]}
是。实际上,${BASH_SOURCE[0]}
似乎工作在zsh
,除了内部.zshrc
files.
我真正在做什么.zshrc
(这不起作用):
echo ${BASH_SOURCE[0]}
source `dirname $0`/common-shell-rc.sh
源失败($0
is zsh
)和echo
输出一个空行。
Edit:显然,对于$0
为了工作,我需要选择FUNCTION_ARGZERO
选项集。有什么方法可以测试这是否在脚本中设置? (这样我就可以暂时设置它) 它显然是打开的,除非你设置nofunction_argzero
,并且它在我的 shell 中。还是一无所获$0
。 (我认为 b/c 我不在函数中。)
${BASH_SOURCE[0]}
zsh 中的等效项是${(%):-%N}
, NOT $0
(正如OP所说,后者在.zshrc中失败)
Here %
表示值的迅速扩展,%N
表示“脚本的名称、源文件、
或 zsh 当前正在执行的 shell 函数,
以最近开始的为准。如果没有,这相当于参数$0。”(来自man zshmisc
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)