# Calculate the interval in seconds depending on the unit specified
if [ "${interval%s}" != "$interval" ] ; then interval="${interval%s}"
elif [ "${interval%m}" != "$interval" ] ; then interval="${interval%m}" interval=$((interval*60))
elif [ "${interval%h}" != "$interval" ] ; then interval="${interval%h}" interval=$((interval*60*60))
else interval="${interval%d}" interval=$((interval*60*60*24))
fi
so, a variable might hold something like "1d", "100m", etc.
Yet in the first there is a condition
if [ "$interval" -eq 0 ]; then
debug_echo "check_stamp: interval=0"
# treat as no time has passed
return 1
fi
In the second half of the function there is
# Calculate the interval in seconds depending on the unit specified
interval= "${interval% s}"
interval= "${interval% m}"
interval= $((interval* 60))
interval= "${interval% h}"
interval= $((interval* 60*60))
interval= "${interval% d}"
interval= $((interval* 60*60*24) )
if [ "${interval%s}" != "$interval" ] ; then
elif [ "${interval%m}" != "$interval" ] ; then
elif [ "${interval%h}" != "$interval" ] ; then
else
fi
so, a variable might hold something like "1d", "100m", etc.
Yet in the first there is a condition
if [ "$interval" -eq 0 ]; then
debug_echo "check_stamp: interval=0"
# treat as no time has passed
return 1
fi
which treats the value as a number and leads to
/usr/lib/ apt/apt. systemd. daily: 87: [: Illegal number: 20h