Shell-Script

如何從另一個 shell 腳本的輸出中將秒轉換為 hh:mm:ss 格式

  • October 14, 2018

每個人

這是我的腳本

/bin/wstalist | grep 'uptime'

這是返回值,"uptime": 3456,是的,有一個,輸出。

這些數字是秒。我想將其轉換為 hh:mm:ss 格式。並希望它簡單,因為它每分鐘都會由路由器(busybox)執行。

所以問題是我不知道怎麼做。

有人能幫我嗎?請。

line=$(/bin/wstalist | grep 'uptime')
sec=${line##* }
sec=${sec%%,}
h=$(( $sec / 3600 ))
m=$(( $(($sec - $h * 3600)) / 60 ))
s=$(($sec - $h * 3600 - $m * 60))
if [ $h -le 9 ];then h=0$h;fi
if [ $m -le 9 ];then m=0$m;fi
if [ $s -le 9 ];then s=0$s;fi
echo $h:$m:$s
#!/bin/bash

# Here's the output from your command
output='"uptime": 3456,'

# Trim off the interesting bit
seconds="$(echo "${output}" | awk '{ print $2 }' | sed -e 's/,.*//')"

readonly SECONDS_PER_HOUR=3600
readonly SECONDS_PER_MINUTE=60

hours=$((${seconds} / ${SECONDS_PER_HOUR}))
seconds=$((${seconds} % ${SECONDS_PER_HOUR}))
minutes=$((${seconds} / ${SECONDS_PER_MINUTE}))
seconds=$((${seconds} % ${SECONDS_PER_MINUTE}))

printf "%02d:%02d:%02d\n" ${hours} ${minutes} ${seconds}

引用自:https://unix.stackexchange.com/questions/323429