Como centralizar texto do script??? [RESOLVIDO]

1. Como centralizar texto do script??? [RESOLVIDO]

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 09/09/2020 - 08:41h

Bom dia a todos, estou com um pequeno problema, como eu poderia centralizar o texto desse script quando rodo ele???

 
#!/bin/bash

# usage
# run script specifying hour, minute and second, example of a five-minute countdown: ./countdown.sh 00:05:00

function countdown
{
local OLD_IFS="${IFS}"
IFS=":"
local ARR=( $1 )
local SECONDS=$(( (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2] ))
local START=$(date +%s)
local END=$((START + SECONDS))
local CUR=$START

while [[ $CUR -lt $END ]]
do
CUR=$(date +%s)
LEFT=$((END-CUR))

printf "\r%02d:%02d:%02d" \
$((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

sleep 1
done
IFS="${OLD_IFS}"
echo " "
}
clear
countdown "$1"


muito obrigado, tenham um ótimo dia!


  


2. Re: Como centralizar texto do script???

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 09/09/2020 - 10:21h

Tenta assim cara

colunas=$(tput cols) 
texto='Hello, world!'
printf "%*s\n" $(((${#texto} + $colunas) / 2)) "$texto"


---
echo 1244394795515721490698P | dc


3. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 09/09/2020 - 12:40h


Sempre quis saber se tinha como.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



4. Re: Como centralizar texto do script??? [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/09/2020 - 16:40h


mauricio123 escreveu:


Sempre quis saber se tinha como.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento

Várias possibilidades com o "printf",
Exemplos:

Termina na coluna definida
printf '%*s' "15" 'FIM'
FIM
10 Colunas de margem
printf "%*sLinux" 10
Ou
printf "%10sLinux\n"
Print no fim da linha
printf '%*s' "$(tput cols)" 'FIMDALINHA'
Gera linha com 57 "bolinhas"
printf "%57s\n"|sed "s/ /•/g"

É isso....

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


5. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 09/09/2020 - 17:25h


msoliver escreveu:


mauricio123 escreveu:


Sempre quis saber se tinha como.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento

Várias possibilidades com o "printf",
Exemplos:

Termina na coluna definida
printf '%*s' "15" 'FIM'
FIM
10 Colunas de margem
printf "%*sLinux" 10
Ou
printf "%10sLinux\n"
Print no fim da linha
printf '%*s' "$(tput cols)" 'FIMDALINHA'
Gera linha com 57 "bolinhas"
printf "%57s\n"|sed "s/ /•/g"

É isso....

______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________



Beleza. E com echo tem como? é o que eu uso.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



6. Re: Como centralizar texto do script??? [RESOLVIDO]

Alex Machado Fontinelli
Pinguino

(usa Debian)

Enviado em 09/09/2020 - 17:53h

Eu quase consegui da seguinte forma porem o script não está rodando como deveria


#!/bin/bash

# usage
# run script specifying hour, minute and second, example of a five-minute countdown: ./countdown.sh 00:05:00

function countdown
{
cols=$( tput cols )
rows=$( tput lines )
middle_row=$(( $rows / 2 ))
middle_col=$(( ($cols /2) - 4 ))

local OLD_IFS="${IFS}"
IFS=":"
local ARR=( $1 )
local SECONDS=$(( (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2] ))
local START=$(date +%s)
local END=$((START + SECONDS))
local CUR=$START

while [[ $CUR -lt $END ]]
do
CUR=$(date +%s)
LEFT=$((END-CUR))
tput cup $middle_row $middle_col
echo -ne "$(printf %02d:%02d:%02d)\e" \
$((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

sleep 1
done
IFS="${OLD_IFS}"
echo " "
}
clear

countdown "$1"



os digitos não estão contando de forma correta


7. Re: Como centralizar texto do script???

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/09/2020 - 19:22h

Pinguino escreveu:

Eu quase consegui da seguinte forma porem o script não está rodando como deveria


#!/bin/bash

# usage
# run script specifying hour, minute and second, example of a five-minute countdown: ./countdown.sh 00:05:00

function countdown
{
cols=$( tput cols )
rows=$( tput lines )
middle_row=$(( $rows / 2 ))
middle_col=$(( ($cols /2) - 4 ))

local OLD_IFS="${IFS}"
IFS=":"
local ARR=( $1 )
local SECONDS=$(( (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2] ))
local START=$(date +%s)
local END=$((START + SECONDS))
local CUR=$START

while [[ $CUR -lt $END ]]
do
CUR=$(date +%s)
LEFT=$((END-CUR))
tput cup $middle_row $middle_col
echo -ne "$(printf %02d:%02d:%02d)\e" \
$((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

sleep 1
done
IFS="${OLD_IFS}"
echo " "
}
clear

countdown "$1"



os digitos não estão contando de forma correta

Funcionou....
No printf, usei outro recurso, para imprimir sempre na linha '2'.
#!/bin/bash
CA="\e[0;38;5;11m";
CF="\e[m";
COLS=$((($(tput cols)-12)/2)) #tamanho do 'texto'

countdown() {
clear;
ARR=(${@//:/ });
SECONDS=$(( (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2] ))
START=$(date +%s)
END=$((START + SECONDS))
CUR=$START;
while ((${CUR} < ${END}));do
CUR=$(date +%s)
LEFT=$((END-CUR))
msec=$(date +%3N);
hora="$(printf "%02d:%02d:%02d.%s\n" "$((LEFT/3600))" "$(( (LEFT/60)%60))" "$((LEFT%60))" "${msec}")";
printf "\x1B[2;${COLS}f${CA}${hora}${CF}\n";
sleep 0.001;
done
}
countdown "$@"



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


8. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 10/09/2020 - 21:33h


Beleza então, marque o tópico como resolvido.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



9. Re: Como centralizar texto do script???

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/09/2020 - 00:43h

Desenvolvi um "Count Down" + "Figlet"....
Segue:
#!/bin/bash
cvm="\e[1;38;5;1m";
cam="\e[0;38;5;11m";
cfi="\e[m";
hcrono=99999;
n=0;
hzero="10800"; #Em GMT -03:00

testa_arg(){
[[ "$@" =~ ^([01][0-9]:|2[0-3]:)([0-5][0-9](:)?){2}$ ]] && { segs=$(date -d"1970-01-01 $@ UTC" +%s); crono;} || erro
}

erro(){
txt=$(printf "Formato:\nHH:MM:SS"|figlet -ctk);
printf "${cvm}${txt}${cfi}\nTempo Máximo: 23:59:59\n"
}

crono() {
hfinal=$(( $(printf "%(%s)T")+segs));
clear_linha=$(printf '%110s\n'|figlet -ctk);
while ((${hcrono}>hzero));do let n++;
hnow=$(printf "%(%s)T");
hcrono=$((hzero+(hfinal - hnow)));
hora=$(printf "%(%X)T" $(( ${hzero} + (${hfinal}-${hnow}))));
fglhora=$(printf "%s" ${hora}|figlet -ctk);
printf "\e[$(( (LINES/2)-6 ));f${cam}${fglhora}${cfi}\n";
sleep 1;
printf "\e[$(( (LINES/2)-6 ));f${clear_linha}\n";
done
}

clear;testa_arg "$@"



______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________


10. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 11/09/2020 - 20:41h


Não sabia que dava de usar figlet com pipe.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



11. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 11/09/2020 - 20:42h


Só pra saber, dá para centralizar com echo?

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



12. Re: Como centralizar texto do script??? [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 11/09/2020 - 22:47h


Com echo desisti.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts