Рейтинг:0

Bash: смещение даты на n секунд

флаг cn
SEU

Я пытаюсь компенсировать время в следующем формате. Я не могу заставить это работать. Какие-либо предложения?

это не работает

ДАТА0="26сен21 06:10:14"
DATE1=$(date -d "$DATE0 + 1 секунда" +'%d%b%y %H:%M:%S'); 
эхо $DATE1

Это тоже не работает

п=10
ДАТА0="26сен21 06:10:14"
DATE1=$(date -d "$DATE0 + $n секунд" +'%d%b%y %H:%M:%S'); 
эхо $DATE1
terdon avatar
флаг cn
Как это не работает? Какой результат вы получаете и какой результат вы ожидаете? Оба ваших примера отлично работают в моей системе.
Рейтинг:0
флаг my
# В этом
п=10
ДАТА0="26сен21 06:10:14"

# Секунды с 01.01.1970
СЕКУНДЫ=$(дата +%s --date "${DATE0}")

# Добавить секунды
СЕКУНДЫ=$(( СЕКУНДЫ + n ))

# Переформатировать секунды
DATE1=$(date --date "@${SECONDS}" +'%d%b%y %H:%M:%S')

Одна линия:

# В этом
п=10
ДАТА0="26сен21 06:10:14"

# Вычислить
DATE1=$(date --date "@$(( $(date +%s --date "${DATE0}") + n ))" +'%d%b%y %H:%M:%S ')

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.