每个人
这是我的脚本
/bin/wstalist | grep 'uptime'
这是返回值,就像"uptime": 3456,
是的,有一个,
输出。
这些数字是秒。我想将其转换为 hh:mm:ss 格式。并希望它很简单,因为它每分钟都会由路由器(busybox)运行。
所以问题是我不知道怎么办。
有人能帮我吗?请。
答案1
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
答案2
#!/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}