Como imprimir uma linha horizontal do tamanho do terminal com uma palavra no meio? [duplicado]

0

Eu preciso exibir

--------------------------- word ----------------------------

com a palavra à direita no meio da linha horizontal e defina o comprimento da linha horizontal para que ela se ajuste à largura do terminal usado.

Eu pensei em usar uma expressão semelhante a

printf '%*s\n' "$(tput cols)" '' | tr ' ' -
    
por user123456 02.10.2016 / 20:10

1 resposta

0

Aqui está uma versão com mas tenho a certeza que existe uma forma mais compacta de o fazer

#!/bin/bash

WORD=$@
NUMBER_OF_SPACES_SURROUNDING_THE_WORD=1  

TERMINAL_WIDTH=$(tput cols)
WORD_SIZE=$(echo $WORD | wc -c )
NUMBER_OF_SPACES_SURROUNDING_THE_WORD=1
NUMBER_OF_SYMBOLS=$((TERMINAL_WIDTH -   $WORD_SIZE - 2*$NUMBER_OF_SPACES_SURROUNDING_THE_WORD))
LENGTH_OF_RIGHT_PART=$((NUMBER_OF_SYMBOLS/2 + $NUMBER_OF_SYMBOLS%2 ))
LENGTH_OF_LEFT_PART=$(( $TERMINAL_WIDTH - 2*$NUMBER_OF_SPACES_SURROUNDING_THE_WORD - $WORD_SIZE - $LENGTH_OF_RIGHT_PART      ))


printf '%*s' "$LENGTH_OF_RIGHT_PART" '' | tr " " -
printf '%*s' $NUMBER_OF_SPACES_SURROUNDING_THE_WORD
printf $WORD
printf '%*s' $NUMBER_OF_SPACES_SURROUNDING_THE_WORD
printf '%*s\n' "$LENGTH_OF_RIGHT_PART" '' | tr " " -
    
por 02.10.2016 / 20:35

Tags