В скрипте, над которым я работаю, пользователь определяет переменную, помеченную временем начала. Я хотел бы увеличить и уменьшить эту переменную на ± 3 часа. Формат 00:00:00 (24 часа), и я не уверен, есть ли лучший способ, который не включает манипуляции с строкой, потому что, если он меньше нуля, я не могу пройти -03: 00: 00 на Python скрипт, который использует эту переменную.Увеличение переменной времени пользователя Bash
#somescript.sh 00:01:35
STARTTIME=$1
E=${STARTTIME%*:}
S=${STARTTIME##*:} && ((S=S+3)
echo "$S : $E"
Желаемый результат: 3:01:35 и 21:01:35
Отзыв: String Operators и Incrementing time (minutes and seconds) in bash/shell script до задаю этот вопрос. Любая помощь будет оценена.
Второй вопрос, который вы якобы рассмотрели есть ответы, показывающие, как использовать дату GNU для математики даты, которая является подходящим инструментом для работы. –
@CharlesDuffy Я бы не связал это, если бы не просмотрел его. Компонент даты в другом месте сценария, который не включен в вопрос, который меня беспокоил, может вызвать проблему с моей датой. Спасибо за помощь. – ImNotLeet
BTW, имена всех шапок зарезервированы для встроенных переменных оболочки и переменных среды. См. Четвертый абзац http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html, имея в виду, что переменные окружения и переменные оболочки совместно используют пространство имен. –