Проблема с получением текущего времени в секундах в оболочке bash

#bash #shell

Вопрос:

Мне нужно получить текущее время в секундах на старой машине (версия 4.3 bash), и эта команда не работает.

 date  %s  

Он извлекает «%s» Любую идею о том, что здесь не так?

Комментарии:

1. Понятия не имею, но добавьте вывод следующих команд к вопросу: which date ; date --version ; date ' %s' ; /usr/bin/date ' %s' . Это поможет найти проблему.

2. Я не понимаю, как это связано с башем. Однако это может зависеть от date используемой вами версии. (1) Под какой операционной системой вы работаете и (2) какая у вас дата ( date --version )? (3) Может ли быть так, что у вас date на ПУТИ больше одного? Что же type -a date раскрывается?

Ответ №1:

 nawk 'BEGIN {srand();time=srand();print time}' lt;/dev/null  

Комментарии:

1. Немного более переносимый способ: PATH=$(getconf PATH) awk 'BEGIN{srand();print srand()}' — Это делается для того, чтобы убедиться, что используется версия Posix awk , которая гарантирует такое поведение srand .

Ответ №2:

Попробуйте с printf функцией.

 $ printf '%(%s)T' -1  1635846449