我有一个~/.zshrc
文件,用于执行~/Shell
目录中的所有顶级shell脚本,这些顶级脚本依次执行较低级别的脚本。例如,~/Shell/programs
中的脚本(所谓的“低级脚本”)由顶级~/Shell/09-programs.sh
脚本执行。我最近注意到运行~/.zshrc
变得比以前慢得多,我想知道是否有任何方法来确定我的~/Shell
目录中的哪个脚本(或脚本集)是导致它变得如此缓慢。知道每个脚本中导致脚本变得如此慢的精确行号也会很有帮助。如果您希望我的~/.zshrc
文件和~/Shell
脚本here是我们定期更新的GitHub存储库。
答案 0 :(得分:2)
PS4=':[%*]:%x:%I+' zsh -x -l -i
将运行一个新的登录shell,每行执行前面都有第二个准确的时间戳,即定义它的文件名和行号。
顺便说一句,与此相当的bash看起来像是:
PS4=':[\t]:$BASH_SOURCE:$LINENO+' bash -x -l -i
...虽然我个人而言,在这种情况下我可能会使用$SECONDS
而不是\t
来获取自shell调用以来的整数秒数。