] Чтобы избежать условий гонки, все еще предполагая дату GNU:[
] [eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"
]
[] С помощью []zsh[
], вы можете сделать это внутри системы: [
zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))
]
[] Портативно, в часовых поясах, где нет выключателя дневного света, вы можете это сделать: [
] [IFS=:
set -- $(date +%T)
echo "$((${1#0} * 3600 + ${2#0} * 60 + ${3#0}))"
]
[] []${X#0}[
] нужно снять лидирующие 0, которые в некоторых оболочках, таких как []bash[
], []dash[
] и []posh[
], вызывают проблемы с []09[
] (когда оболочка жалуется на то, что это недействительное восьмеричное число). [
set IP_ADDR = "123.123.123.123"
неверно. Вам нужно:
IP_ADDR="123.123.123.123"
(без пробелов).