Por que adicionar um arquivo . em %s impede que o número seja impresso?

Por que adicionar um arquivo . em %s impede que o número seja impresso?

Estou tentando aprender comandos no Bash e me deparei com esses exemplos. Por que adicionar um '.'impede que o número de sequência seja impresso?

Este é o comportamento que eu quero, mas não consegui encontrar nadaa página de manual.

printf "%.sI" $(seq 10)

IIIIIIIIII

printf "%sI" $(seq 10)

1I2I3I4I5I6I7I8I9I10I

Responder1

printfpermite especificar uma precisão que é aplicável até mesmo para strings:

Declarações relevantes dopágina de manual printf(3):

Uma precisão opcional, na forma de um ponto ('.') seguido por uma sequência de dígitos decimais opcional.

Se a precisão for fornecida apenas como '.', ou se a precisão for negativa, a precisão será considerada zero.

Isso fornece ... o número máximo de caracteres a serem impressos de uma string para sconversões S.

So printf '%.s'é equivalente a printf '%.0s', que suprime a saída do parâmetro de string subsequente.

informação relacionada