Например, я хочу отображать текущую дату и время в следующем формате:
yyyymmddhhmmss
Как я могу это сделать? Похоже , что приходит самый формат даты с -
, /
, :
и т.д.
Ну вот:
date +%Y%m%d%H%M%S
Как man date
сказано в верхней части, вы можете использовать такую date
команду:
date [OPTION]... [+FORMAT]
То есть вы можете указать ему параметр формата, начиная с +
. Вы, наверное, догадались, что означают символы форматирования, которые я использовал:
%Y
на год%m
на месяц%d
на деньВы можете найти этот и другие символы форматирования в man date
.
Простой пример в сценарии оболочки
#!/bin/bash
current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;
Без формата пунктуации: - +% Y% m% d% H% M% S
С пунктуацией: - +% Y-% m-% d% H:% M:% S
"`date +%Y-%m-%d %H:%M:%S`"
дает мнеdate: illegal time format
Если вы используете Bash, вы также можете использовать одну из следующих команд:
Вы можете использовать опцию
-v varname
для сохранения результата$varname
вместо его вывода на стандартный вывод:Хотя команда date всегда будет выполняться в подоболочке (т. Е. В отдельном процессе), printf является встроенной командой и, следовательно, будет быстрее.
источник
%
параметры вы можете передать, похоже, это используетdate
команду. Итак,man date
мы предоставим вам доступные варианты.Без пунктуации (как упомянул @Burusothman):
O / P:
С пунктуацией :
O / P:
источник
Интересный / забавный способ сделать это с помощью расширения параметров (требуется
bash 4.4
или новее):источник