Bash дата не правильная - PullRequest
0 голосов
/ 12 мая 2018

Я использую следующее в скрипте bash

echo $(date +'%Y/%b')

Я ожидаю "2018 / май", но на самом деле я получаю "2018 / май". Могу ли я что-нибудь сделать, чтобы месяц был строчным? Я бегу в тюрьме BSD.

Ответы [ 3 ]

0 голосов
/ 12 мая 2018

Поскольку man-дата не отображает справку о нижнем регистре, я бы просто передал ее

echo $(date +'%Y/%b') | tr '[:upper:]' '[:lower:]'
0 голосов
/ 12 мая 2018

Месяц пишется с заглавной первой буквы на английском языке, поэтому нет строки формата для получения месяца в нижнем регистре.

В bash, используя строчную переменную:

typeset -l now
now=$(date +'%Y/%b')
printf 'Date is %s\n' "$now"

Это выдаст

Date is 2018/may
0 голосов
/ 12 мая 2018

Команда в вашем вопросе идентична просто:

date +'%Y/%b'

Сама команда date не имеет опций для строчных дат (man strftime для подробностей), но вы можете принудительно ввести регистр в bash, используя расширение параметра :

$ x="$(date '+%Y/%b')"
$ x="${x,,}"
$ printf '%s\n' "$x"
2008/may
...