【发布时间】:2021-11-23 14:19:55
【问题描述】:
我的 .zshrc 文件中有一行 source $SNIPPETS/*.zsh,我知道它可以部分工作,因为目录中定义的一些函数可以工作,但其他函数则不能,除非我专门专门提供该文件。
我将采取哪些步骤来查找采购中存在提前退出或中断的位置?
【问题讨论】:
我的 .zshrc 文件中有一行 source $SNIPPETS/*.zsh,我知道它可以部分工作,因为目录中定义的一些函数可以工作,但其他函数则不能,除非我专门专门提供该文件。
我将采取哪些步骤来查找采购中存在提前退出或中断的位置?
【问题讨论】:
您一次只能source 一个文件。正在获取第一个文件,但不是其余的。
您需要在.zshrc 中使用循环
for i in "$SNIPPETS"/*.zsh; do
[[ -e "$i" ]] && source "$i"
done
【讨论】:
今天我了解到:source 仅适用于显式调用的文件。可以输入多个文件,但不能输入通配符。
我的文件都没有损坏。
我为调试采取的步骤:
zprof。 (zmodload zsh/zprof)source $SNIPPETS/*.zsh
【讨论】:
source几个参数;只是剩下的参数变成了位置参数。因此,如果列表中的第一个文件是实际获取的文件,则将第二个文件分配给参数 $1,将第三个文件分配给参数 $2,依此类推。阅读 man zshbuiltins,它解释了这一点。