--- Em [email protected], "Flavio Junior" <[EMAIL PROTECTED]> escreveu > > 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 <[EMAIL PROTECTED]> wrote: > > > > --- Em [email protected]<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] >
Olá Flavio. Tentei usar conforme sua modificação, funciona, mas tem um problema quando eu acesso a primeira vez esse menu o ESC funciona, mas apos fazer o primeiro cadastro de ip ele não funciona mais...quando clico no ESC ele escreve ^[ no prompt. Acho que tenho de fazer mais modificaçoes no script, mas não estou encontrando o ponto de partida. Abraços
