msoliver
(usa Debian)
Enviado em 23/08/2016 - 23:55h
Mauriciodez escreveu:
msoliver escreveu:
...
marcelo ... olha só ... eu não posso definir a variável "cols" pois são muitos "echos" e cada um de um tamanho sacou, não rola de eu sair contando eles para definir "cols" ... o lance das linhas eu tava pensando aqui ... já que o script e grande, quase todos os "echos" vão estar na última linha, logo eu poderia setar a variável linhas para "linha" .
na moral eu tenho q fazer algo assim
var linha = linha atual
var coluna = total de colunas
var texto = tamanho da mensagem
aí em cada "echo" eu implementaria as variáveis ... isso que estou quebrando a cabeça para fazer ... mas seria algo assim
texto=" ### um texto qualquer ### "; align=((coluna - texto)/2) linha; echo " texto";
texto= " ### outro texto qualquer ### "; align=((coluna - texto)/2) linha; echo " texto";
texto= " ### mais outro texto qualquer ### "; align=((coluna - texto)/2) linha; echo " texto";
conseguiu captar a parada ???
___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
___________________________________________________________________________________________
Ae Mauricio.
Não é necessário que você conte os caracteres...
O "awk" conta para você....
Ex:
echo "Viva o Linux"|awk '{print length($0)}'
12
O BASH também . . .
VAR="Viva o Linux"
echo ${VAR}
12
Sugestão:
Coloque os textos que deseja "ecoar" em um arquivo (ou VARIÁVEIS)
Faça um laço com o while, para ler "linha a linha"
Conte os caracteres e implemente na VAR COLS...
while IFS=$'\n' read -r LINHA;do
NN=$(awk '{print length($0)}' <<< "$LINHA")
COLS=$((($(tput cols)-
NN)/2))
.
.
.
done
É Isso . . .
Marcelo Oliver