#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()}'
— Это делается для того, чтобы убедиться, что используется версия Posixawk
, которая гарантирует такое поведениеsrand
.
Ответ №2:
Попробуйте с printf
функцией.
$ printf '%(%s)T' -1 1635846449