gpt4 book ai didi

bash - 如何检查启动后台进程的 bash 脚本的执行时间

转载 作者:行者123 更新时间:2023-12-03 23:46:33 28 4
gpt4 key购买 nike

我有一个 bash 脚本,它在后台运行 4 个不同的进程,你可以看到下面的代码:

declare -a arr=("seed_automation_data_1" "seed_automation_data_2" "seed_automation_data_3" "seed_automation_data_4")
command="bundle exec rake db:seed:"
for i in "${arr[@]}"
do
$command$i &
done

这个 bash 脚本实际上是在 rails 框架 中运行一个 rake 任务

$command$i &

这一行在后台启动了四个不同的进程:-

bundle exec rake db:seed:seed_automation_data_1
bundle exec rake db:seed:seed_automation_data_2
bundle exec rake db:seed:seed_automation_data_3
bundle exec rake db:seed:seed_automation_data_4

由于有四个不同的进程在后台运行,我无法知道 bash 脚本 何时 FINISHED 或计算 执行时间它。

有没有一种方法可以打印一些表明脚本已完成运行的语句?

最佳答案

看看wait functionbash 中。它只是等待所有子进程完成。然后您可以轻松计算耗时,例如使用 SECONDS 内部变量(解释为 here ):

SECONDS=0

declare -a arr=("seed_automation_data_1" "seed_automation_data_2" "seed_automation_data_3" "seed_automation_data_4")
command="bundle exec rake db:seed:"
for i in "${arr[@]}"
do
$command$i &
done

wait
echo $SECONDS

关于bash - 如何检查启动后台进程的 bash 脚本的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209117/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com