Это ошибка, которую zsh печатает полную строку с printf '% .s'?

Команда printf '%.0s-' `seq 1 30`; echo printf '%.0s-' `seq 1 30`; echo работает отлично во всех проверенных оболочках:

 /bin/jsh : ------------------------------ /bin/attsh : ------------------------------ /bin/y2sh : ------------------------------ /bin/ash : ------------------------------ /bin/dash : ------------------------------ /bin/b203sh : ------------------------------ /bin/b43sh : ------------------------------ /bin/b44sh : ------------------------------ /bin/bash : ------------------------------ /bin/ksh : ------------------------------ /bin/ksh93 : ------------------------------ /bin/lksh : ------------------------------ /bin/mksh : ------------------------------ /bin/zsh : ------------------------------ /bin/zsh4 : ------------------------------ 

За исключением jsh (оболочка реликвии), y2sh Еще одна оболочка, версия 2.39 и lksh (оболочка Legacy Korn), все остальные реализуют встроенную печать:

 /bin/attsh : printf is a shell builtin /bin/ash : printf is a shell builtin /bin/dash : printf is a shell builtin /bin/b203sh : printf is a shell builtin /bin/b43sh : printf is a shell builtin /bin/b44sh : printf is a shell builtin /bin/bash : printf is a shell builtin /bin/ksh : printf is a shell builtin /bin/ksh93 : printf is a shell builtin /bin/mksh : printf is a shell builtin /bin/zsh : printf is a shell builtin /bin/zsh4 : printf is a shell builtin 

Но эта строка: printf '%.s-' `seq 1 30`; echo printf '%.s-' `seq 1 30`; echo делает (только) ошибка zsh:

 /bin/attsh : ------------------------------ /bin/ash : ------------------------------ /bin/dash : ------------------------------ /bin/b203sh : ------------------------------ /bin/b43sh : ------------------------------ /bin/b44sh : ------------------------------ /bin/bash : ------------------------------ /bin/ksh : ------------------------------ /bin/ksh93 : ------------------------------ /bin/mksh : ------------------------------ /bin/zsh : 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30- /bin/zsh4 : 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30- 

Спецификация POSIX гласит, что:

Точность должна иметь вид ('.'), За которым следует десятичная цифра; строка нулевой цифры обрабатывается как ноль.

Даже если спецификация формата s заявляет (в той же ссылке):

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

Было бы разумно утверждать, что «недостающая» цифра точности не «опущена», а была установлена ​​на «нуль» и поэтому должна интерпретироваться как ноль.

Из этого следует, что у zsh есть ошибка.

Это правильное объяснение?

Interesting Posts

Почему происходит перебор находок на выходе плохой практики?

Cmus не показывает песни после новой установки

Команды Unix для генерации случайного алфавита

ptrace: операция не допускается при присоединении к процессу зомби

В каких дистрибутивах GNU / Linux есть хорошее программное обеспечение для увеличения экрана, которое можно свободно или предустановить?

Миграция по использованию диска

Как я могу навсегда исправить опечатку в моей последней команде bash?

Как конкретно запускать встроенную команду оболочки

Обнаружение размера файла и операция условно

Создать архив tar, разбитый на блоки максимального размера

Найти каталоги с определенным именем

Могу ли я монтировать нечувствительные к регистру tmpfs / ramfs?

Как Nix управляет модулями SystemD на не-NixOS?

Локальный DNS-сервер отказывается запрашивать DNS

awk – получить вход как от файла, так и от STDIN?

Linux и Unix - лучшая ОС в мире.