在bash中,我能够编写包含以下内容的脚本:
{ time {
#series of commands
echo "something"
echo "another command"
echo "blah blah blah"
} } 2> $LOGFILE
在ZSH中,等效代码不起作用,我无法弄清楚如何使它适合我。这段代码有效,但我不知道如何让它包装多个命令。
{ time echo "something" } 2>&1
我知道我可以创建一个新脚本并将命令放在那里,然后正确执行,但有没有办法使用函数或类似的方法来执行上面的bash?
答案 0 :(得分:29)
请尝试以下方法:
{ time ( echo hello ; sleep 10s; echo hola ; ) } 2>&1
答案 1 :(得分:13)
如果您想对自己的代码进行分析,可以选择以下几种方法:
答案 2 :(得分:2)
尝试替换{with(? 我认为这应该有帮助
答案 3 :(得分:1)
您还可以将times
POSIX shell内置与函数结合使用。
它将报告shell及其子级使用的用户和系统时间。看到
http://pubs.opengroup.org/onlinepubs/009695399/utilities/times.html
示例:
somefunc() {
code you want to time here
times
}
使用shell函数的原因是它创建了一个新的shell上下文,在其开始时times
全为零(尝试它)。否则结果也包含当前shell的贡献。如果这是您想要的,请忘记该功能并将times
放在脚本的最后。