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