команда даты, возвращаясь один или два дня. Наблюдение различных флагов

UseDNS no должен быть на сервере /etc/ssh/sshd_config (не ssh_config). Это не имеет никакого значения в ssh_config.

7
17.10.2014, 02:29
2 ответа

дата не удар встроены. Это - системная утилита, и это - что-то, в котором расходятся OSX и Linux. OSX использует инструменты BSD, в то время как Linux использует инструменты GNU. Они подобны, но не то же.

, Поскольку вы нашли, на OSX, флаг-d к дата летнее время средств управления, тогда как на Linux, это устанавливает время дисплея. На OSX -v корректирует дату дисплея, но на Linux флаг-v является недопустимой опцией.

По большей части, и BSD и GNU борются за совместимость со стандартом POSIX. Если вы проверите стандарт POSIX на дата , тем не менее, то вы будете видеть, что это не справка в этом случае: это не поддерживает синтаксиса для корректировки даты.

, Если вы хотите, чтобы ваш код работал над обеими платформами, попробуйте:

[ "$(uname)" = Linux ] && date --date="2 days ago" +"%Y"."%m"."%d" || date -v-2d +"%Y"."%m"."%d"

Или (требует удара):

[ "$OSTYPE" = linux-gnu ] && date --date="2 days ago" +"%Y"."%m"."%d" || date -v-2d +"%Y"."%m"."%d"
14
27.01.2020, 20:16

С помощью ksh93 (, который ИМХО намного лучше, чем bash для сценариев ), вы можете использовать встроенную printf, например.:

printf '%(%Y.%m.%d)T' '2 days ago'
0
27.01.2020, 20:16

Теги

Похожие вопросы