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

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

Re: [shell-script] Re: Configurando o ESC


From: Flavio Junior
Subject: Re: [shell-script] Re: Configurando o ESC
Date: Mon, 14 May 2007 10:12:45 -0300

Veja bem, VAR foi o nome que EU usei pra variavel, não obrigatoriamente.
No seu caso a variavel é "ip"

Vou tentar adaptar seu script aqui no corpo do e-mail:

echo -n "Informe o IP do cliente: "
read -n1 -s IP
if [ "^[$" == "$(cat -vet <<< $IP)" ]
then
Avisar
fi
case $IP in
[a-z] | [A-Z] ) echo "Formato ip Invalido!"; sleep 1; DelAviso
;;

[0-9]*\.[0-9]*\.[0-9]*\.[0-9][0-9][0-9] )
x=1
while [ "$x" -le 4 ];
do
Q1=`echo "${IP}" | cut -f"${x}" -d.`;
if [ "$Q1" -gt 255 ];
then
echo "O valor $Q1 não é válido!";
sleep 1
DelAviso
fi;
x=$((x+1));
done;
;;

* ) echo "Formato ip invalido!"; sleep 1; DelAviso
esac

ARQ=/usr/local/squid/etc/aviso.txt
if [ ! -f "$ARQ" ]
then
touch /usr/local/squid/etc/aviso.txt
else
if [ ! -w "$ARQ" ]
then
echo "Arquivo sem Permissão para gravar!"
else
sed -e '$a\' -e "${IP}" "${ARQ}" > /tmp/arq
mv /tmp/arq "${ARQ}"
fi
sleep 1
Avisar
fi
}

Testa ai..

Flavio do Carmo Junior

On 5/14/07, xiss_break <address@hidden> wrote:
>
>   --- Em address@hidden<shell-script%40yahoogrupos.com.br>,
> "Flavio Junior" <billpp@...>
> escreveu
> >
> > A dica não é minha, a algum tempo atras alguem respondeu essa mesma
> duvida
> > aqui na lista
> >
> > a ideia é a seguinte:
> > -bash-3.1$ read -n1 -s VAR
> > <ESC>
> > -bash-3.1$ if [ "^[$" == "$(cat -vet <<< $VAR)" ]; then echo APERTOU
> ESC;
> > else echo BALH BALH BLAH; fi
> > APERTOU ESC
> > -bash-3.1$
> >
> > Pra ficar mais claro, quando voce atribui o valor de <ESC> (apertar
> a tecla
> > ESC) a uma variavel, o caracter q ela pega é ^[$, com o cat -vet a gente
> > consegue ver isso e comparar com o literal ^[$ q escrevemos, se
> forem iguais
> > então ele apertou esc.
> >
> > Agora pro teu problema é só fazer um entra lido sai lido que resolve.
> >
> > Sorte,
> >
> >
> > Flavio do Carmo Junior
> >
> >
> > On 5/14/07, xiss_break <xiss_break@...> wrote:
> > >
> > > Olá pessoal,
> > >
> > > Estou tentando fazer um programa em shell, sendo este o meu primeiro
> > > programa. Esta funcionando de forma perfeita, mas algumas
> > > funcionalidades estão me tirando do serio, a principal delas é a
> seguinte:
> > >
> > > Tem uma tela que o usuario tem de informar um numero de codigo, mas
> > > gostaria que quando o usuario em uma possivel desistência, pudesse
> > > usar o ESC para retornar a tela anterior.
> > >
> > > Isso é possivel?
> > >
> > > Grato a todos!
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
> Olá Flavio..
>
> Agradeço imensamente sua resposta.
> Coloquei de um geito muito tosco no script apenas para testar se
> funcionava de fato. Mas agora não estou conseguindo inserir este
> controle no contexto do script ja existente. Veja abaixo o que tenho.
>
> echo -n "Informe o IP do cliente: "
> read -n1 -s VAR ip
> if [ "^[$" == "$(cat -vet <<< $VAR)" ]
> then
> Avisar
> fi
> case $ip in
> [a-z] | [A-Z] ) echo "Formato ip Invalido!"; sleep 1; DelAviso
> ;;
>
> [0-9]*\.[0-9]*\.[0-9]*\.[0-9][0-9][0-9] )
> x=1
> while [ "$x" -le 4 ];
> do
> Q1=`echo "${ip}" | cut -f"${x}" -d.`;
> if [ "$Q1" -gt 255 ];
> then
> echo "O valor $Q1 não é válido!";
> sleep 1
> DelAviso
> fi;
> x=$((x+1));
> done;
> ;;
>
> * ) echo "Formato ip invalido!"; sleep 1; DelAviso
> esac
>
> ARQ=/usr/local/squid/etc/aviso.txt
> if [ ! -f "$ARQ" ]
> then
> touch /usr/local/squid/etc/aviso.txt
> else
> if [ ! -w "$ARQ" ]
> then
> echo "Arquivo sem Permissão para gravar!"
> else
> sed -e '$a\' -e "${ip}" "${ARQ}" > /tmp/arq
> mv /tmp/arq "${ARQ}"
> fi
> sleep 1
> Avisar
> fi
> }
>
> Veja que inserir sua sugestao na interacao do read, mas assim ele fica
> com alguns bugs...preciso encontrar um geito de inseri-lo nessa
> intreção com o restante do script.
>
> Agradeço a todos que ajudarem.
>
>  
>


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



reply via email to

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