Значение Nix не имеет типа "набор атрибутов целых чисел со знаком"

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с любым подстановочным знаком в выражении после удаления #или %в начале или конце соответственно.

1
23.03.2019, 16:20
1 ответ

Вnetworking.firewall:

есть два атрибута с похожими -именами.
  • разрешенные порты TCP
  • разрешенные TCPPortRanges

Первое представляет собой список, поэтому допустимо значение [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.
    '';
};
2
28.04.2021, 23:35

Теги

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