我正在尝试衡量我的流程完成所需的时间,如下所示:
#!/bin/bash
SECONDS=0
launching some processes
process1
process2
process3
duration=$SECONDS
echo "Time: $duration"
但是,它会在脚本运行时立即打印echo
,然后其他进程开始运行,因此时间不会考虑进程的持续时间。
如何让它等到过程结束然后打印持续时间?
我的流程是这样的,这是一个例子:
$ROOT/transform --config=file1.xml --param2=value2 --param3=file3.xml $TARGET/input.xml > $TARGET/output2.xml
答案 0 :(得分:1)
使用time
命令,例如
shell> time my_shellscript.sh
它会为你完成这项工作。 Here是一个解释它的网站。或man page获取更多信息。
如果你想在shellcript中做到这一点,你必须指定你正在等待(或多次)的过程的PID。
#!/bin/bash
process1 &
PID_process1=$!
process2 &
PID_process2=$!
wait $PID_process1 $PID_process2
答案 1 :(得分:0)
您必须在wait
之前放置echo
以等待进程结束。像这样:
wait
echo "Time: $duration'