Перейти к главному содержимому

Bash: сколько времени в секундах прошло

Допустим есть два события, по которым вызываются скрипты.

Требуется во втором скрипте (по второму событию) узнать сколько времени прошло с первого события. Например, чтобы определить длительность нажатия кнопки.

Идея такая:

  • первый скрипт сохраняет временную метку в файл
  • второй скрипт вычисляет разность временных меток (сейчас минус то, что в файле)

Первый скрипт просто сохраняет метку:

date +"%s" > /tmp/stamp

Второй скрипт вычисляет разность:

TIMEDIFF=$(( ( $(date +%s) - $(date -r /tmp/stamp +%s) ) ))
echo $TIMEDIFF

if (( ${TIMEDIFF} > 2 )); then
  echo "### More than 2 seconds passed"
else
  echo "### Less than 2 seconds passed"
fi