Я пытаюсь создать переменную timestamp в сценарии оболочки, чтобы немного облегчить ведение журнала. Я хочу создать переменную в начале скрипта и распечатать текущее время при каждой выдаче echo $timestamp
. Это оказалось сложнее, чем я думал. Вот несколько вещей, которые я пробовал:
timestamp="(date +"%T")"
эхо распечатывает (date +"%T")
timestamp="$(date +"%T")"
echo печатает время инициализации переменной.
Другие вещи, которые я пробовал, - просто небольшие изменения, которые не работали лучше. Кто-нибудь знает, как выполнить то, что я пытаюсь сделать?
echo "$(timestamp): something happened"
.date +"%Y-%m-%d_%H-%M-%S"
Если вы хотите получить метку времени Unix, вам нужно использовать:
%T
даст вам только время; так же, как%H:%M:%S
(через http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/ )источник
date
. Однако я также проголосовал за «правильный» ответ. Я не искал этого, но это лучший ответ на первоначальный вопрос, и это также очень полезно для меня.источник
echo $(date +"%Y-%m-%dT%T.%3N%z")
однако, я не могу заставить его работать в терминале Mac. Как сделать то же самое в Mac. СпасибоФормат ISO 8601 (
2018-12-23T12:34:56
) более читабелен, чем отметка времени UNIX. Однако на некоторых ОС вы не можете указывать:
имена файлов. Поэтому я рекомендую использовать что-то вроде этого:Вы можете использовать следующую команду, чтобы получить метку времени в этом формате:
Это формат, который я видел во многих приложениях. Еще одна приятная вещь в том, что если имена ваших файлов начинаются с этого, вы можете отсортировать их по алфавиту, и они будут отсортированы по дате.
источник
TZ=UTC date +...
может сделать это более компактно , используя UTC метку времениЯ использую Ubuntu 14.04.
Правильный путь в моей системе должен быть
date +%s
.Вывод
date +%T
как12:25:25
.источник
Используйте подстановку команд:
источник
Ты можешь использовать
Это доставляет в формате
2014-02-01 15:12:35-05:00
`
Символы back-tick ( ) будут вызывать оценку того, что находится между ними, и включать результат в строку.date --help
есть другие варианты.источник
touch $timestamp
создаст два файла.Последние версии
bash
не требуют вызова внешней программыdate
:%(...)T
использует соответствующий аргумент в качестве метки времени UNIX и форматирует его в соответствии сstrftime
форматом -style в скобках. Аргумент-1
соответствует текущему времени, и когда двусмысленность не возникнет, можно опустить.источник
И для моих соотечественников, попробуйте использовать это:
предоставит формат формата: "15-02-2020_19-21-58"
Вы вызываете переменную и получаете строковое представление, как это
источник
srand без значения использует текущую временную метку с большинством реализаций Awk.
источник