ksh脚本的执行时间

Posted

技术标签:

【中文标题】ksh脚本的执行时间【英文标题】:Execution time of a ksh script 【发布时间】:2016-07-19 11:04:37 【问题描述】:

我想知道 ksh 脚本的执行时间,无需编辑或运行脚本。

获取脚本执行时间的任何命令?

【问题讨论】:

“不编辑或运行脚本”真的吗? 是的,我不需要编辑或运行脚本 您的问题自相矛盾。首先你提到“......执行时间......”,然后你提到“......没有运行脚本......”然后你再次提到“时间......脚本执行......”。我将假设您只想知道脚本执行需要多长时间。请澄清我是否不正确。谢谢。 这是不可能的,原因有很多,包括但不限于 - 你的 CPU 有多快,它有多忙,脚本做了什么,它怎么会失败如果不满足某些假设,给脚本的输入如何改变脚本的行为,...... 【参考方案1】:

你可以试试下面的时间命令;

root@host:/tmp:>cat test.ksh 
#!/bin/ksh
echo started
sleep 3
echo finished
root@host:/tmp:>date; time ksh test.ksh  ; date
Tue Jul 19 14:36:43 EEST 2016
started
finished

real    0m3.006s
user    0m0.001s
sys     0m0.002s
Tue Jul 19 14:36:46 EEST 2016

【讨论】:

【参考方案2】:

在您的脚本中使用time 命令:

time for x in 1 2 3 4; do ./your_script.ksh; done

real    1m20.085s
user    0m0.021s
sys     0m0.025s

或者您可以在脚本中使用ksh 中提供的SECONDS 参数:

begin_time=$SECONDS
your_shell_code_here
end_time=$SECONDS
elapsed_time=$((end_time - begin_time))

请参阅printf 以格式化包含在elapsed_time 中的输出。

【讨论】:

以上是关于ksh脚本的执行时间的主要内容,如果未能解决你的问题,请参考以下文章

对 ksh 中数组中的每个元素执行一个函数

linux报错:-ksh: xxxx: not found [No such file or directory]

孤儿(ksh Shell 脚本未在 CTRL-X 上首先终止)

遍历 ksh 中的一系列整数?

我可以在 KornShell 中获取当前脚本的绝对路径吗?

在 AIX 上运行 Linux Shell