imprimir caracteres repetidamente usando o símbolo de asterisco no bash [duplicado]

0
print '*' * 80

Este snippet python imprime 80 asteriscos, que eu uso frequentemente como delimitadores em arquivos de log.

Como posso fazer isso no script bash usando a sobrecarga de operadores?

    
por Madhavan Kumar 11.06.2015 / 04:19

1 resposta

3

No shell ( ksh , zsh , bash ) você pode fazer:

stars=$(printf '%*s' 80 '')
echo "${stars// /*}"

Com bash , há a opção de fazer:

printf -v stars '%*s' 80 ''
echo "${stars// /*}"

Explicação: O printf usa uma string de formato %*s , o que significa produzir uma string de comprimento que é fornecida por meio de um argumento. Portanto, o primeiro argumento ( 80 ) especifica o comprimento e o segundo argumento especifica a sequência ( '' , uma sequência vazia) a ser efetivamente impressa, mas preenchida em branco com a largura definida. Observe que isso também pode ser expresso como printf "%80s" '' , embora eu tenha usado a versão parametrizada para o comprimento para tornar explícito que pode ser um parâmetro variável.

    
por 11.06.2015 / 04:45

Tags