모든 사람
이건 내 스크립트야
/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}