auto ajuste na tela [RESOLVIDO]

1. auto ajuste na tela [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/10/2017 - 01:11h

Pessoas ... tem alguma forma de colocar um texto auto ajustado a tela ???

exemplo ... o texto
 --------- | maurício | --------- 


o que eu quero é q a sequencia de "-" antes e depois de "|" se ajustem ao tamanho da tela, seja ela de qual tamanho for !!!

a principio pensei em contar as colunas, subtrair " | maurício | ', dividir isso por dois e colocar uma parte antes e outra depois, mais não achei nada q me retornasse esse valor 'X' ... alguma idéia ???

pensei tb em fazer como se faz em CSS, com porcentagem da tela mais não sei se em shell tem como fazer isso !!

OBS: o texto entre "|" é variável !!!

Um exemplo do q eu quero é como a barra de instalação do apt !!!


  


2. MELHOR RESPOSTA

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 28/10/2017 - 18:46h

Mauriciodez escreveu:

Consegui .... uhuuuuuuuuuuuuuuuuuuuuuuuuu

Exemplo que usei

#!/bin/bash
funcao ()
{
crep="-"
qtde=$(echo -n $txt | wc -c)
tcol=`echo "cols" | tput -S`
trep=$(((( $tcol-$qtde )/2 -2 )))
txtrep=$(for ((X=0;X<=trep;X++)) { echo -n "$crep" ; })
echo -e "\n$txtrep$txt$txtrep\n"
}

txt=" | Fazendo Update | "
funcao
apt update
txt=" | Fazendo Upgrade | "
funcao
apt -y upgrade

exit

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



Minha colaboração....
Para não ter que declarar a variável $txt toda vez antes de chamar a função.... simplesmente use os parâmetros posicionais, neste caso o $@ que inclui todos


#!/bin/bash
mdprint ()
{
txt=$@
crep="-"
qtde=$(echo -n $txt | wc -c)
tcol=`echo "cols" | tput -S`
trep=$(((( $tcol-$qtde )/2 -2 )))
txtrep=$(for ((X=0;X<=trep;X++)) { echo -n "$crep" ; })
echo -e "\n$txtrep$txt$txtrep\n"
}


mdprint "aew meu textao eaioushdiaweu hsilduhs"
#apt update
mdprint "uhuuulllllll" "alalalala" bubububu
#apt -y upgrade




3. Re: auto ajuste na tela [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/10/2017 - 03:02h

pessoas .. cheguei a alguns resultados , na verdade todos, só não consegui montar a parada

me retorna as colunas
colunas=`echo "cols" | tput -S` 

o texto
txt=" | Mauricio Paiva | " 

o numero de caracateres
numcaract=$(echo -n $txt | wc -c) 

o resultado
num=$((((  $colunas-$numcaract )/2 ))) 

o caractere a ser repetido
rep="-" 

o loop q vai repetir "rep" "num" vezes
for n in $(seq $num); do
printf "$rep";
done
printf '\n'


agora q o bicho pegou ...
1° - a variável "txt" vai estar em varios locais do script com conteúdo diferente
EX:

#!/bin/bash
comando ...
comando ...
txt=" | Mauricio | "
comando ...
txt=" | Mauricio Paiva | "
comando ...


então .. como juntar tudo para ter o resultado que desejo ??

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: auto ajuste na tela [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/10/2017 - 13:02h

Consegui .... uhuuuuuuuuuuuuuuuuuuuuuuuuu

Exemplo que usei

#!/bin/bash
funcao ()
{
crep="-"
qtde=$(echo -n $txt | wc -c)
tcol=`echo "cols" | tput -S`
trep=$(((( $tcol-$qtde )/2 -2 )))
txtrep=$(for ((X=0;X<=trep;X++)) { echo -n "$crep" ; })
echo -e "\n$txtrep$txt$txtrep\n"
}

txt=" | Fazendo Update | "
funcao
apt update
txt=" | Fazendo Upgrade | "
funcao
apt -y upgrade

exit

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts