Я хотел бы знать, есть ли способ получить количество секунд с начала эпохи UNIX в любой POSIX-совместимой оболочке, не прибегая к не-POSIX-языкам, таким как perl, или используя не-POSIX-расширения, такие как функция strftime GNU awk ,
Вот некоторые решения, которые я уже исключил ...
date +%s
// Не работает на Solaris
Я видел несколько сценариев оболочки , предложенных ранее, которые анализируют вывод date
, а затем выводят секунды из отформатированной даты григорианского календаря, но, похоже, они не принять во внимание детали, как високосные секунды.
GNU awk имеет функцию strftime
, но она недоступна в стандартном awk
.
Я мог бы написать небольшую программу на C, которая вызывает функцию time
, но двоичный файл будет специфичным для конкретной архитектуры.
Существует ли кроссплатформенный способ сделать это, используя только POSIX-совместимые инструменты?
Я испытываю желание отказаться и принять зависимость от perl, который по крайней мере широко распространен.
perl -e 'время печати' // Обман (не POSIX), но должен работать на большинстве платформ