Как рассчитать количество прошедших лет в Linux bash console

Подскажите как будет выглядеть команда расчета количества лет, от 1986 до текущего года?

Вот так не получается, пишет не верный синтаксис, не понимаю как правильно написать что бы рассчитать эту разницу?

echo date +"%Y" - 1986

Ответы (4 шт):

Автор решения: Pr0gramm1st

Попробуйте такой вариант:

currentDate=`date +%s`
pastDate=`date +%s --date="1986-01-01"`
differenceDate=$(($currentDate-$pastDate))
differenceYear=$(($differenceDate/(3600*24*365)))
echo $differenceYear

То есть мы ищем разницу в количестве секунд между сегодняшней и целевой датой и уже с получившимся результатом работает: делим секунды на то количество секунд, которое содержится в 365 днях.

→ Ссылка
Автор решения: nexoma

вариант:

expr `date +"%Y - 1986"`

37

→ Ссылка
Автор решения: toorr2p

Спасибо всем, получилось все реализовать в скрипте так

#!/bin/bash
DISPLAY=:1 zenity --info --text="You are $(expr `date +%Y` - 1986) years old today!"
→ Ссылка
Автор решения: Ivan

Используя printf:

$ target_year=1986
$ printf -v current_year '%(%Y)T' -1
$ echo $current_year
2023
$ echo $((current_year-target_year))
37
→ Ссылка