GNU date
делает все возможное, чтобы проанализировать ваш ввод, но некоторые форматы по своей сути неоднозначны.
BSD date
позволяет (или практически требует )указать формат ввода с помощью -f
, а затем просто анализирует ввод в соответствии с этим, выдавая ошибку, если ввод не соответствует формату.
Ожидание или требование стандартных инструментов для поддержки нелогичного и случайного формата даты, подобного вашему, в любом случае кажется ошибочным. Стандартные инструменты должны поддерживать стандартные форматы, и я думаю, что в долгосрочной перспективе вы обнаружите, что для ваших скриптов и программ имеет смысл использовать внутренний -удобный для компьютера формат. Для взаимодействия с людьми со странным поведением достаточно просто написать простую функцию-оболочку, например
Wackydate () {
local day # local is a Bashism
local mon
local year
year=${1%????}
mon=${1#$year??}
day=${1#$year}
day=${day%$mon}
shift
date -d "$year$mon$day" "$@"
}
Подстановки параметров оболочки ${variable#prefix}
и ${variable%suffix}
возвращают значение variable
с любым подстановочным знаком в выражении после удаления #
или %
в начале или конце соответственно.
Вnetworking.firewall
:
Первое представляет собой список, поэтому допустимо значение [80 81 5900]
. Но последнее представляет собой множество, определяемое следующим образом:
allowedTCPPortRanges = mkOption {
type = types.listOf (types.attrsOf types.int);
default = [ ];
example = [ { from = 8999; to = 9003; } ];
description =
''
A range of TCP ports on which incoming connections are
accepted.
'';
};