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
printf
permite 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
s
conversõesS
.
So printf '%.s'
é equivalente a printf '%.0s'
, que suprime a saída do parâmetro de string subsequente.