发软文是什么意思,东营网站建设seo,大安移动网站建设,做网站必须要买空间这是尽可能接近内置bash调试工具的答案,因为它从脚本执行开始时间提供了整体时序信息.在脚本的顶部添加此项以进行第二次计数#xff1a;export PS4[${SECONDS}s][${BASH_SOURCE}:${LINENO}]: ${FUNCNAME[0]:${FUNCNAME[0]}(): }; set -x;相同,但用毫秒代替#xff1a;Ndate …这是尽可能接近内置bash调试工具的答案,因为它从脚本执行开始时间提供了整体时序信息.在脚本的顶部添加此项以进行第二次计数export PS4[${SECONDS}s][${BASH_SOURCE}:${LINENO}]: ${FUNCNAME[0]:${FUNCNAME[0]}(): }; set -x;相同,但用毫秒代替Ndate %s%N; export PS4[$(((date %s%N-$N)/1000000))ms][${BASH_SOURCE}:${LINENO}]: ${FUNCNAME[0]:${FUNCNAME[0]}(): }; set -x;最后一个例子可以达到微秒精度,请记住你正在使用bash :).示例脚本#!/bin/bashNdate %s%Nexport PS4[$(((date %s%N-$N)/1000000))ms][${BASH_SOURCE}:${LINENO}]: ${FUNCNAME[0]:${FUNCNAME[0]}(): }; set -x;sleep 1exit调试输出示例[3ms][/root/db_test.sh:5]: sleep 1[1012ms][/usr/local/bin/graphite_as_rand_stat.sh:6]: exit请记住,您可以选择性地调试脚本的特定部分,方法是将其封装在调试启动时的“set -x”和调试端的“debug x”中.从执行开始,定时数据仍将正确显示.附录为了完整起见,如果您确实需要差分计时数据,您可以将调试信息重定向到文件并在之后处理它.鉴于此示例脚本#!/bin/bashNdate %s%Nexport PS4[$(((date %s%N-$N)/1000000))ms][${BASH_SOURCE}:${LINENO}]: ${FUNCNAME[0]:${FUNCNAME[0]}(): }; set -x;sleep 1for ((i0;i2;i)); doo$(($RANDOM*$RANDOM/$RANDOM))echo $osleep 0.$odoneexit在将调试重定向到文件时运行它./example.sh 2example.dbg并输出差分调试时序(涵盖多线)p0; cat example.dbg | while read l; do [[ ! ${l%%[*} ~ ^\ ]] echo $l continue; iecho $l | sed s#[^0-9]*\([0-9]\\).*#\1#; echo $l | sed s#${i}ms#${i}ms$(($i-$p))ms#; p$i; done输出[2ms2ms][./example.sh:5]: sleep 1[1006ms1004ms][./example.sh:6]: (( i0 ))[1009ms3ms][./example.sh:6]: (( i2 ))[1011ms2ms][./example.sh:7]: o19258[1014ms3ms][./example.sh:8]: echo 19258[1016ms2ms][./example.sh:9]: sleep 0.19258[1213ms197ms][./example.sh:6]: (( i ))[1217ms4ms][./example.sh:6]: (( i2 ))[1220ms3ms][./example.sh:7]: o176[1226ms6ms][./example.sh:8]: echo 176[1229ms3ms][./example.sh:9]: sleep 0.176[1442ms213ms][./example.sh:6]: (( i ))[1460ms18ms][./example.sh:6]: (( i2 ))[1502ms42ms][./example.sh:11]: exit