Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl 如何将jenkins构建持续时间从毫秒转换为hr:min:sec_Curl_Jenkins_Awk - Fatal编程技术网

Curl 如何将jenkins构建持续时间从毫秒转换为hr:min:sec

Curl 如何将jenkins构建持续时间从毫秒转换为hr:min:sec,curl,jenkins,awk,Curl,Jenkins,Awk,我可以通过curl使用restapi获得jenkins构建持续时间,但是时间是以毫秒为单位的 curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration 我正在寻找一种以标准格式获取时间的方法,即,hr:min:sec 我试过这个直到现在 curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%

我可以通过curl使用restapi获得jenkins构建持续时间,但是时间是以毫秒为单位的

curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration
我正在寻找一种以标准格式获取时间的方法,即,hr:min:sec 我试过这个直到现在

curl -s "$JOB_URL/$BUILD_NUMBER/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%i hr %i min %i sec", ($1 / 3600000), ($1 % 3600000)/60000 , ($1 % 100)}'
这肯定是不正确的,因为URL以毫秒为单位给出的时间是
417597
,但它以hr:min:sec为单位给出的时间是
0 hr 6 min 97 sec

curl -s $JOB_URL/3458/api/json?tree=duration
{"duration":417597}

curl -s $JOB_URL/3458/api/json?tree=duration | awk -F : '{ print $2 }' | awk -F } '{ printf "%i hr %i min %i sec", ($1 / 3600000), ($1 % 3600000)/60000 , ($1 % 100)}'
0 hr 6 min 97 sec
分钟和小时的转换是正确的。 我被困在秒转换中 有人能告诉我这里出了什么问题吗。 提前谢谢

echo 417597 | awk '
{  t_sec = int($0/1000)
   divmod(t_sec, 60); t_min = Q; sec = R
   divmod(t_min, 60);    hr = Q; min = R
   printf "%s hr %s min %s sec\n", hr, min, sec
}
function divmod(a, b) { # quotient and remainder
    Q = int(a / b)
    R = a - Q * b
}'
返回

0 hr 6 min 57 sec

根据duration值,您可以简单地在groovy:D中计算该值

棒极了 执行
持续时间是构建时间10分钟35秒

欢迎使用堆栈溢出,请在您的帖子中使用代码标签发布一次
curl
命令的输出,好吗?将有助于我们帮助您,干杯:)编辑问题:)
def duration = 635309

// Roud the hour
double hour = Double.valueOf((duration / 3600000)).round()
def hourStr = hour > 0 ? " ${hour}h" : ""

// Handle minute parts
double totalMin = Double.valueOf((duration % 3600000)/60000).round(2)
def realMin = "${totalMin}".split("\\.")
def min = Integer.valueOf(realMin[0])
def minStr = Integer.valueOf(min) > 0 ? "${min}min" : ""

// Handle the reminder of seconds
def realSec = realMin[1]
double secVal = Double.valueOf("0.${realSec}") * 60
def sec = "${secVal}".split("\\.")[0]
sec = Integer.valueOf(sec) > 0 ? "${sec}sec" : ""

println "Duration is Build time${hourStr} ${minStr} ${sec}"