Encontrei duas informações aqui na rede do stackexchange que me ajudaram a chegar a essa resposta funcional:
No entanto, o código desta resposta é meu.
Veja o histórico de edições se você quiser mais verbosidade; Eu editei todos os arquivos e "passos ao longo do caminho".
Acho que a melhor maneira é:
center() {
termwidth="$(tput cols)"
padding="$(printf '%0.1s' ={1..500})"
printf '%*.*s %s %*.*s\n' 0 "$(((termwidth-2-${#1})/2))" "$padding" "$1" 0 "$(((termwidth-1-${#1})/2))" "$padding"
}
center "Something I want to print"
Saída em um terminal de 80 colunas de largura:
========================== Something I want to print ===========================
Observe que o preenchimento não precisa ser um único caractere; na verdade, a variável padding
não tem 500 caracteres no código acima. Você poderia usar outra forma de preenchimento alterando apenas a linha padding
:
padding="$(printf '%0.2s' ^v{1..500})"
Resultados em:
^v^v^v^v^v^v^v^v^v^v^v^v^v Something I want to print ^v^v^v^v^v^v^v^v^v^v^v^v^v^
Outro uso prático é:
clear && center "This is my header"