如何制作一个运行应用程序1秒的脚本?

如何制作一个运行应用程序1秒的脚本?

我有以下 bash 脚本,用于在文件夹中运行一些应用程序,每个应用程序 1 秒(用于测试):

#!/bin/bash
for app in ./*.app
do
    myrunner $app &
    sleep 1
    killall -9 myrunner
done

但我认为使用“killall -9”并不是真正最好的方法,有更好的方法吗?

答案1

我想你想用timeout,例如

timeout 1s myrunner $app

答案2

$!是最后一个后台进程的pid,所以:

do
    myrunner $app &
    pid=$!
    sleep 1
    kill -9 $pid
done

您不必将其分配给那里的中间变量,因为sleep没有后台,即您可以只使用kill -9 $!.

有用的相关变量是$?最后一个命令的退出状态,您可以通过以下方式获取 WRT 后台进程:

somecommand & wait $!
status=$?

答案3

你给你的测试对象 1s挂钟时间, 不是运行时间。这可以产生很大的不同。

为什么只运行固定时间,而不建立一些完成标准?这样就无法真正保证要测试的内容确实已完成(特别是如果稍后运行的测试时间较长的话)。

相关内容