[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]