Дата выполнения команды

Дата выполнения команды

Я пытаюсь выполнить эту команду, date +'%-4.4h %2.1d %H:%M'однако вывод неверный:

%-4.4h %2.1d 12:50  

Я думаю, что что-то не так с моим терминалом Ubuntu или кодом. Есть ли у вас какие-нибудь советы? ps: новичок

решение1

Насколько мне известно, %-4.4hи %2.1dне являются допустимыми спецификаторами формата для команды GNU date- в частности, модификаторы точности не имеют смысла и не поддерживаются. Принятые модификаторы:

   After any flags comes an optional field width, as a decimal  number;  then  an  optional
   modifier,  which is either E to use the locale's alternate representations if available,
   or O to use the locale's alternate numeric symbols if available.

(«десятичная» здесь означает просто цифры от 0 до 9).

Спецификаторами формата для полного названия месяца и дня месяца являются %Bи %dсоответственно (можно использовать строчные буквы %bили %hдля сокращенного названия месяца, например Sepдля September). Например:

$ date +'%B %d %H:%M'
May 12 07:46

$ date +'%B %d %H:%M' -d 'today + 4 months'
September 12 07:48

$ date +'%b %d %H:%M' -d 'today + 4 months'
Sep 12 07:50

Обратите внимание, что спецификаторы ширины поляминимумширины, например

$ date +'%4B %4d %H:%M'
 May 0012 08:04

дополняется Mayдо 4 символов, но

$ date +'%4B %4d %H:%M' -d 'today + 4 months'
September 0012 08:03

не обрезается Septemberдо Sept.

man dateПолный список спецификаторов см %.

Связанный контент