如何分析启动缓慢的Bash外壳脚本? [英] How can I profile a Bash shell script slow startup?
本文介绍了如何分析启动缓慢的Bash外壳脚本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的Bash shell最多需要3-4秒才能启动,而如果我用--norc
启动它,它会立即运行。
我通过手动插入return
语句并寻求速度提升来启动";分析";/etc/bash.bashrc
和~/.bashrc
,但这不是一个量化过程,效率不高。
如何分析我的Bash脚本,并查看哪些命令执行时间最长?
推荐答案
如果您有GNUdate
(或其他可以输出纳秒的版本),请在/etc/bash.bashrc
的开头(或您希望在任何Bash脚本中开始跟踪的任何位置)执行此操作:
PS4='+ $(date "+%s.%N") 11 '
exec 3>&2 2>/tmp/bashstart.$$.log
set -x
添加
set +x
exec 2>&3 3>&-
位于~/.bashrc
的末尾(或您希望停止跟踪的任何Bash脚本的末尾)。