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

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

Re: Configurando o ESC


From: xiss_break
Subject: Re: Configurando o ESC
Date: Mon, 14 May 2007 12:50:42 -0000
User-agent: eGroups-EW/0.82

--- Em address@hidden, "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.




reply via email to

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