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

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

=> shell script para mudar background e foreground <=


From: Eder Jordam
Subject: => shell script para mudar background e foreground <=
Date: Fri, 13 Jul 2001 13:22:52 -0300 (EST)

Boa tarde a todos.

Criei um shell script para alterar o background e o foreground
de um terminal GNU/Linux , mas não estou conseguindo sucesso
no mesmo. O shell script ainda está incompleto, mas já apresenta
bugs. 

Quando digito: "azul" e depois "branco" o script funciona, mas se
digito "azul" e depois "preto" ele retorna o fundo como sendo na
cor "azul" e a cor da fonte com sendo "branco".

Se alguem puder me ajudar, agradeceria muito.

Segue abaixo o script:

#!/bin/bash
clear
echo "=========================================================="
echo "        Seja bem-vindo ao software Camaleão 1.0.0"
echo "        By Éder Jordam - address@hidden"
echo "=========================================================="
echo "Quais as cores que você deseja no seu console GNU/Linux? "
echo "=========================================================="
echo "================== CORES DISPONIVEIS ====================="
echo "========= azul, branco, preto, verde, vermelho ==========="
echo "=========================================================="
echo "Digite na 1º opção a cor do FUNDO do console. EX: preto"
echo "Digite na 2º opção a cor da FONTE do console. EX: verde"
echo ""
read back
read fore
clear
if [ $back = "azul" -o $back = "Azul" -o $fore = "branco" -o $fore = "Branco" ]
 then
  setterm -store -background blue -foreground white
  clear
elif
[ $back = "azul" -o $back = "Azul" -o $fore = "preto" -o $fore = "Preto" ]
 then
  setterm -store -background blue -foreground black
  clear
elif 
[ $back = "azul" -o $back = "Azul" -o $fore = "verde" -o $fore = "Verde" ]
 then
  setterm -store -background blue -foreground green
  clear
elif
[ $back = "azul" -o $back = "Azul" -o $fore = "vermelho" -o $fore = "Vermelho" ]
 then
  setterm -store -background blue -foreground red
  clear
elif
[ $back = "branco" -o $back = "Branco" -o $fore = "azul" -o $fore = "Azul" ]
 then
  setterm -store -background white -foreground blue
  clear
else
 echo "Você digitou dados inválidos" 
fi
#############################################
#                                           #
# shell script desenvolvido por Éder Jordam #
# e-m@il: address@hidden         #
# site  : http://www.ederjordam.hpg.com.br  #
# data  : 13/07/2001                        #
#                                           # 
#############################################

--
Éder Jordam - address@hidden - www.ederjordam.hpg.com.br
LiCQ: 92977489 - Contato: 0xx32-9112-7504 - GNU/Linux Conectiva 6.0
Técnico em Processamento de Dados - GNU/Linux User: 179086
Jordam Consultoria em Informática - Juiz de Fora/MG/Brasil



From (no email address) Fri Jul 13 14:39:32 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-7_2_0); 13 Jul 2001 21:39:32 -0000
Received: (qmail 30812 invoked from network); 13 Jul 2001 21:39:31 -0000
Received: from unknown (10.1.10.26) by l9.egroups.com with QMQP; 13 Jul 2001 
21:39:31 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156) by 
mta1 with SMTP; 13 Jul 2001 21:39:30 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4]) by 
perninha.conectiva.com.br (Postfix) with SMTP id 41CA838C82 for 
<address@hidden>; Fri, 13 Jul 2001 18:39:28 -0300 (EST)
Received: (qmail 5791 invoked by uid 0); 13 Jul 2001 21:38:21 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 13 Jul 2001 21:38:21 -0000
Date: Fri, 13 Jul 2001 18:48:03 -0300 (BRT)
X-X-Sender:  <verde@verde.distro.conectiva>
To: <address@hidden>
Subject: =?iso-8859-1?Q?guia_de_expressões_regulares_em_português?Message-ID: 
<Pine.LNX.4.33L.0107131845000.846-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>

olás.

inspirado no mestre julio, tem mais um carinha aqui que escreveu
alguma coisa &:)

como o tema expressões regulares é útil a quem programa em shell
e usa os sed/awk/grep da vida, aí vai o anúncio.

segundo a lei imaginária que rege os meios eletrônicos isso não
pode ser considerado SPAM desde que seja útil. &:)

-----------------------------------------------------------------------

http://verde666.org/er | http://verde666.org/er | http://verde666.org/er

   olás. eu sou o aurélio e escrevi um guia sobre expressões regulares
   que vai sair pela editora novatec (http://www.novateceditora.com.br).

   a previsão de lançamento é na fenasoft (http://www.fenasoft.com.br),
   agora no fim de julho. depois vai estar disponível nas livrarias onde
   normalmente tem guias da novatec, ou na página da editora.

   é um guia que serve para leigos, iniciantes e iniciados, com
   explicações didáticas, exemplos e tabelas-resumo, além de dicas
   para uso de expressões regulares em alguns programas e editores de
   texto.

   as explicações são independentes de aplicativo ou sistema
   operacional, podendo ser utilizadas em programas do linux,
   windows, o que for.

   também está disponível uma versão HTML completa em
   http://verde666.org/er para aqueles que querem conhecê-lo, ver seu
   conteúdo, consultá-lo.

   espero que gostem!

http://verde666.org/er | http://verde666.org/er | http://verde666.org/er


--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



From (no email address) Fri Jul 13 15:10:18 2001
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-7_2_0); 13 Jul 2001 22:10:17 -0000
Received: (qmail 97090 invoked from network); 13 Jul 2001 22:10:17 -0000
Received: from unknown (10.1.10.142) by l7.egroups.com with QMQP; 13 Jul 2001 
22:10:17 -0000
Received: from unknown (HELO perninha.conectiva.com.br) (200.250.58.156) by 
mta3 with SMTP; 13 Jul 2001 22:10:13 -0000
Received: from burns.conectiva (burns.conectiva [10.0.0.4]) by 
perninha.conectiva.com.br (Postfix) with SMTP id 8C59D38CA2 for 
<address@hidden>; Fri, 13 Jul 2001 18:36:10 -0300 (EST)
Received: (qmail 5463 invoked by uid 0); 13 Jul 2001 21:35:03 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 13 Jul 2001 21:35:03 -0000
Date: Fri, 13 Jul 2001 18:44:45 -0300 (BRT)
X-X-Sender:  <verde@verde.distro.conectiva>
To: <address@hidden>
Subject: Re: [shell-script] => shell script para mudar background e foreground 
<In-Reply-To: <address@hidden>
Message-ID: <Pine.LNX.4.33L.0107131833520.846-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
X-eGroups-From: # aurelio marinho jargas <address@hidden>
From: # aurelio marinho jargas <address@hidden>

olá eder,

a falha está na lógica


@ 13/7, Eder Jordam:
> Quando digito: "azul" e depois "branco" o script funciona, mas se
> digito "azul" e depois "preto" ele retorna o fundo como sendo na
> cor "azul" e a cor da fonte com sendo "branco".
>
> #!/bin/bash
> echo "Digite na 1º opção a cor do FUNDO do console. EX: preto"
> echo "Digite na 2º opção a cor da FONTE do console. EX: verde"
> echo ""
> read back
> read fore
> clear
> if [ $back = "azul" -o $back = "Azul" -o $fore = "branco" -o $fore = "Branco" 
> ]
>  then
>   setterm -store -background blue -foreground white
>   clear

aqui você disse:

OU azul OU branco

quando deveria ser

azul E branco


ou seja, mesmo que a segunda cor é preto, como no primeiro
condicional o azul já bateu, o resto não precisa.

tente algo como:
if [ $back = "azul" -o $back = "Azul" ] && [ $fore = "branco" -o $fore = 
"Branco" ]

como dica geral, sempre que você tem um

if bla
elif bla
elif bla
...
elif bla
else bla
fi

você pode trocar por um case.

no seu caso, seria massa por numa função, algo como:


RetornaCor(){
  local cor
  case $1 in
    [Pp]reto ) cor=black;;
    [Aa]zul  ) cor=blue ;;
    [Bb]ranco) cor=white;;
    [Vv]erde ) cor=green;;
    *) echo cor inválida;;
  esac
  echo $cor
}

note que no case é muito mais fácil você permitir "Verde" e "verde".

aí você só chama a função que converte os nomes do português pro
inglês, assim:

read back
read fore
back=`RetornaCor $back`
fore=`RetornaCor $fore`

e aí só por último, depois de definidas as variáveis, você chama o
programa com os dados certos:


setterm -store -background $back -foreground $fore
clear




> elif
> [ $back = "azul" -o $back = "Azul" -o $fore = "preto" -o $fore = "Preto" ]
>  then
>   setterm -store -background blue -foreground black
>   clear
> elif
> [ $back = "azul" -o $back = "Azul" -o $fore = "verde" -o $fore = "Verde" ]
>  then
>   setterm -store -background blue -foreground green
>   clear
> elif
> [ $back = "azul" -o $back = "Azul" -o $fore = "vermelho" -o $fore = 
> "Vermelho" ]
>  then
>   setterm -store -background blue -foreground red
>   clear
> elif
> [ $back = "branco" -o $back = "Branco" -o $fore = "azul" -o $fore = "Azul" ]
>  then
>   setterm -store -background white -foreground blue
>   clear
> else
>  echo "Você digitou dados inválidos"
> fi
> #############################################
> #                                           #
> # shell script desenvolvido por Éder Jordam #
> # e-m@il: address@hidden         #
> # site  : http://www.ederjordam.hpg.com.br  #
> # data  : 13/07/2001                        #
> #                                           #
> #############################################
>
> --
> Éder Jordam - address@hidden - www.ederjordam.hpg.com.br
> LiCQ: 92977489 - Contato: 0xx32-9112-7504 - GNU/Linux Conectiva 6.0
> Técnico em Processamento de Dados - GNU/Linux User: 179086
> Jordam Consultoria em Informática - Juiz de Fora/MG/Brasil
>
>
>
>
> Sair da lista: address@hidden
> Banco Dados:   http://www.egroups.com/group/shell-script
>
> Seu uso do Yahoo! Groups é sujeito às regras descritas em: 
> http://docs.yahoo.com/info/terms/
>
>

--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



reply via email to

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