grimoire/bash/sheconds

34 lines
582 B
Bash
Executable File

#!/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}"