shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script wget


From: Julio C. Neves
Subject: Re: [shell-script] script wget
Date: Sun, 6 Oct 2019 08:27:09 -0300

Hola Collons,
existe uma forma mais simplificada de trabalhar com cores em bash usando o
comando tput. Veja o que está escrito sobre o isto no livro que publiquei:


   -

   tput setaf – Especifica a cor da fonte (*foreground*).
   -

   tput setab – Especifica a cor de fundo (*background*).

Mais adiante, no Capítulo 8, seção “Mandando no terminal”, você verá outras
formas de fazer a mesma coisa; acho, porém, esta que veremos agora mais
intuitiva (ou menos “desintuitiva”).

Os valores de setaf e setab variam de 0 a 7, e 9 é o valor que restaura as
cores do fonte e/ou do fundo para seu(s) padrão(ões). Veja seus valores e
cores correspondentes na tabela a seguir:

Símbolo

Cor

*0*

Preto

*1*

Vermelho

*2*

Verde

*3*

Amarelo

*4*

Azul

*5*

Magenta

*6*

Ciano

*7*

Branco

*9*

Volta a cor *default*

Como em um livro só é possível utilizar matizes de cinza, fica bastante
complicado mostrar esse padrão de cores, por isso a seguir tem um programa que
você deveria executá-lo para ver todas as possibilidades de combinação de
cores de fonte e de fundo usando o comando tput (como já foi dito, existem
outras formas, mas essa é a melhor).

*$ cat cores1.sh*

#!/bin/bash

for ((b=0; b<=7; b++))

{

tput setab 9; tput setaf 9; echo -n "|"

for ((f=0; f<=7; f++))

{

tput setab $b; tput setaf $f; echo -n " b=$b f=$f "

tput setab 9; tput setaf 9; echo -n "|"

}

echo

}

tput setab 9; tput setaf 9

Os matizes das cores das fontes variam um pouco se a opção tput bold estiver
ativa (normalmente a cor com ênfase é um tom mais claro). Execute o
programa a seguir que você verá essas diferenças.

*$ cat cores4.sh *

#!/bin/bash

# cores4.sh - Lista as cores da console com bold

clear

for ((Cor=0; Cor <=7; Cor++))

{

for Modo in sgr0 bold

{

tput $Modo

tput setaf $Cor

printf -v Linha "%-$(tput cols)s" "-Em-modo-$([ $Modo = sgr0 ] && echo
Normal || echo "Bold ")-"

sed "s/ /█/g" <<< "$Linha"

}

tput sgr0

}

Neste exemplo o printf foi usado para formatar a saída, preenchendo-a com
espaços em branco até o tamanho da linha do terminal e jogando-a na variável
$Linha (por causa da opção -v). O sed trocou os espaços em branco por este
símbolo que preenche todo o espaço destinado a cada letra (█).

A seguir, um exemplo de como se salva/recupera a tela. Aproveitando a
oportunidade, mostramos diversas opções da instrução tput.

*$ cat salva_tela.sh *

#!/bin/bash

(($(tput cols) < 110)) && {

clear; echo Tela precisa de largura mínima de 110 caracteres

exit 1

}

seq 5000 | xargs *Sujando a tela*

Lin=$(($(tput lines) / 2)) *Calculando linha e coluna centrais da tela*

Col=$(($(tput cols) / 2))

tput cup $Lin; tput el; tput bold *Posicionando e apagando a linha central*

tput cup $Lin $((Col-55)); tput setaf 4 *Posicionando e colorindo para dar
mensagem*

echo "Em 10 segundos essa tela será fotografada e se apagará"

tput civis *Cursor invisível para melhorar apresentação*

for ((i=10; i!=0; i--))

{

tput cup $Lin $Col; tput el *Posiciona no centro da tela e limpa núm
anterior*

echo $i

sleep 1

}

tput smcup *Tirando uma foto da tela*

clear *Poderia ter usado tput reset*

tput cup $Lin $((Col-53))

echo "Dentro de 10 segundos a tela inicial será recuperada"

for ((; i<10; i++))

{

tput cup $Lin $Col *Posicionou no centro da tela*

echo $i

sleep 1

}

tput rmcup *Restaurou a foto*

tput cvvis;tput setaf 9 *Restaurou o cursor e cor*

A seguir, um *script* que serve para especificar o par de cores (da letra e
do fundo). Veja:

*$ cat mudacor.sh*

#!/bin/bash

tput sgr0

clear

# Carregando as 8 cores básicas para o vetor Cores

Cores=(Preto Vermelho Verde Marrom Azul Púrpura Ciano "Cinza claro")

# Listando o menu de cores

echo "

Opc Cor

=== ==="

for ((i=1; i<=${#Cores[@]}; i++))

{

printf "%02d %s\n" $i "${Cores[i-1]}"

}

CL=

until [[ $CL == 0[1-8] || $CL == [1-8] ]]

do

read -p "

Escolha a cor da letra: " CL

done

# Para quem tem bash a partir da versao 3.2

#+ o test do until acima poderia ser feito

#+ usando-se Expressoes Regulares. Veja como:

#+ until [[ $CL =~ 0?[1-8] ]]

#+ do

#+ read -p "

#+ Escolha a cor da letra: " CL

#+ done

CF=

until [[ $CF == 0[1-8] || $CF == [1-8] ]]

do

read -p "

Escolha a cor de fundo: " CF

done

let CL-- ; let CF-- # A cor preta eh zero e nao um

tput setaf $CL; tput setab $CF

clear

read -p "Tecle algo para testar as cores que você criou"

tput sgr0; clear

echo Quando quiser essas cores faça: tput setaf $CL\; tput setab $CF
SuShellso!

Abraços,
Julio
[image: image.png]A*manhã encerram-se as inscrições no último curso de
Shell que darei esse ano.*
*Quem tiver algum interesse sobre o assunto, mande um e-mail para *
*address@hidden <address@hidden> *

Em sáb, 5 de out de 2019 às 17:58, 'T.Collons' address@hidden
[shell-script] <address@hidden> escreveu:

>
>
> Pode testar isto, em um script?
>
> *#!/bin/bash*
>
> *# Colors per Shell*
> *C_BLACK="\E[30m"*
> *C_RED="\E[31m"*
> *C_GREEN="\E[32m"*
> *C_YELLOW="\E[33m"*
> *C_BLUE="\E[34m"*
> *C_MAGENTA="\E[35m"*
> *C_CYAN="\E[36m"*
> *C_WHITE="\E[37m"*
> *C_BLACKBOLD="\E[1;30m"*
> *C_REDBOLD="\E[1;31m"*
> *C_GREENBOLD="\E[1;32m"*
> *C_YELLOWBOLD="\E[1;33m"*
> *C_BLUEBOLD="\E[1;34m"*
> *C_MAGENTABOLD="\E[1;35m"*
> *C_CYANBOLD="\E[1;36m"*
> *C_WHITEBOLD="\E[1;37m"*
> *C_NORMAL="\E[0m"*
> *C_BOLD="\E[1m"*
>
> *url=$1*
>
> *[ $url == "" ] && echo -e "\n\n${C_REDBOLD} Manca la pagina arrel de els
> enllaços\n\n${C_NORMAL}" && exit;*
>
> *USER_AGENT='--no-parent --timestamping --convert-links --page-requisites
> --no-directories --no-host-directories -erobots=off --header="Accept:
> text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8;
> rv:21.0) Gecko/20100101 Firefox/21.0 --referer=http://www.google.com
> <http://www.google.com>'*
>
> *wget -qO- \"${USER_AGENT}\" $url &> /dev/null;*
>
>
> execute o script assim "meuscript PageToDownload"
>
>
> El 3/10/19 a les 0:00, Thomaz de Oliveira dos Reis address@hidden
> [shell-script] ha escrit:
>
>
>
> Já vi muito isso para forçar a criação de caches, só que você não consegue
> fazer um wget -r com o -O apontando para /dev/null infelizmente.
>
> Talvez exista outras soluções melhores para isso, mas você pode tentar
> salvar o resultado do wget -r em uma pasta montada com nullfs:
> https://github.com/xrgtn/nullfs
>
> Em qua, 2 de out de 2019 às 17:44, 'T.Collons' address@hidden
> [shell-script] <address@hidden>
> <address@hidden> escreveu:
>
> >
> >
> > Realmente no entiendo el sentido de tu pregunta, descargar toda un web
> > para borrar la descarga?
> >
> > Eu realmente não entendo o significado da sua pergunta, baixar um site
> > inteiro para excluir o download?
> >
> >
> > Ya nos explicaras pero para saber mas usa "man wget"
> >
> >
> >
> > El 2/10/19 a les 20:08, Vitor Hugo address@hidden
> [shell-script]
> > ha escrit:
> >
> >
> >
> > boa tarde;
> >
> > eu prescisava de um script simples de wget que baixa-se um site completo
> > e todo o conteudo fosse redirecionado para /dev/null e colocar este
> > script em loop constante.
> >
> > --
> >
> >
> >
> > Pere
> >
> > address@hidden <address@hidden> <address@hidden>
> >
> >
> >
> > <https://www.google.com/> <https://www.google.com/>
> >
> > ------------------------------------
> >
> > AVIS LEGAL
> >
> > Nota de confidencialitat: Aquest missatge podria contenir missatges
> > d'empresa i altre informació confidencial tutelada per les lleis de
> Europea
> > i altres estats, Si Vostè el rep per error o sense ser una de les
> persones
> > esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni
> > revelar-l'ho o qualsevol altre acció relacionada amb el contingut del
> > missatge i notificar-ho per correu electrònic a l'emissor del missatge.
> >
> > Les persones o entitats que incompleixin els deures de confidencialitat
> > podran ésser perseguides davant dels Tribunals de Justícia sota l'empar
> de
> > la legislació civil, penal i administrativa nacional i internacional.
> >
> > Gracies per la seva cooperació.
> >
> > ------------------------------------
> >
> > LEGAL NOTICE
> >
> > Confidentiality notice: This mail may include business and other
> > confidential information protected under the laws of and other
> territories.
> > if you are not one of the intended recipients of the message, you are
> > legally obliged to delete the message content. Furthermore, you are
> kindly
> > requested to report immediately the incident to the sender.
> >
> > Breach of confidentiality duties is a serious criminal offence in and
> > other territories. Offenders shall be legally prosecuted worldwide.
> >
> > Thank you for your cooperation.
> >
> >
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> --
>
>
>
> Pere
>
> address@hidden <address@hidden>
>
>
>
> <https://www.google.com/>
>
> ------------------------------------
>
> AVIS LEGAL
>
> Nota de confidencialitat: Aquest missatge podria contenir missatges
> d'empresa i altre informació confidencial tutelada per les lleis de Europea
> i altres estats, Si Vostè el rep per error o sense ser una de les persones
> esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni
> revelar-l'ho o qualsevol altre acció relacionada amb el contingut del
> missatge i notificar-ho per correu electrònic a l'emissor del missatge.
>
> Les persones o entitats que incompleixin els deures de confidencialitat
> podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de
> la legislació civil, penal i administrativa nacional i internacional.
>
> Gracies per la seva cooperació.
>
> ------------------------------------
>
> LEGAL NOTICE
>
> Confidentiality notice: This mail may include business and other
> confidential information protected under the laws of and other territories.
> if you are not one of the intended recipients of the message, you are
> legally obliged to delete the message content. Furthermore, you are kindly
> requested to report immediately the incident to the sender.
>
> Breach of confidentiality duties is a serious criminal offence in and
> other territories. Offenders shall be legally prosecuted worldwide.
>
> Thank you for your cooperation.
>
>
>
> 
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]