34 lines
582 B
Text
34 lines
582 B
Text
|
#!/usr/bin/env bash
|
||
|
|
||
|
# The variables are checked dynamically
|
||
|
# shellcheck disable=SC2034
|
||
|
seconds() {
|
||
|
local day hour minute second span time
|
||
|
(( day = $1 / 60 / 60 / 24 ))
|
||
|
(( hour = $1 / 60 / 60 % 24 ))
|
||
|
(( minute = $1 / 60 % 60 ))
|
||
|
(( second = $1 % 60 ))
|
||
|
|
||
|
for span in day hour minute second; do
|
||
|
if (( ${!span} )); then
|
||
|
if [[ $time ]]; then
|
||
|
time+=", "
|
||
|
fi
|
||
|
|
||
|
time+="${!span} $span"
|
||
|
|
||
|
if (( ${!span} > 1 )); then
|
||
|
time+=s
|
||
|
fi
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
printf %s "$time"
|
||
|
|
||
|
if [[ -t 1 ]]; then
|
||
|
printf '\n'
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
seconds "${1-3628800}"
|