Re: [shell-script] problema nas clausulas do comando if

2007-05-03 Por tôpico Tiago Barcellos Peczenyj
Acho que me expressei mal.

Tu copias os dois primeiros parâmetros passados para o script dessa forma:

ARQENT=$1
ARQSAI=$2

Existe um teste mais simples, porém não muito robusto, que seria testar o
número de parâmetros

if [ $# -ge 2 ]; then # se vc tiver pelo menos 2 parametros...
...
fi

MAS se vc executar o script dessa forma

./script.sh "" ""

vc passou 2 parametros. vazios, mas passou.é claro que isso 'raramente' vai
acontecer.

Agora, um teste interessante seria ver se o ARQENT é um arquivo regular,
isso vc pode fazer trocando o teste -z por -f nesse arquivo. ai sim o seu
teste seria bem robusto!

Att

Tiago

On 5/2/07, Renato de Oliveira Diogo <[EMAIL PROTECTED]> wrote:
>
>   Olá
>
> funcionou perfeitamente deste jeito
>
> if [ -z "${ARQENT}" -o -z "${ARQSAI}" ];
>
> vlw.. muito obrigado
>
> do outro não sei se entendi direito... mas vc está dizendo se a string
> (que
> vem por referencia) tem até 2 conjuntos de parametros?
>
> []s
>
> On 4/28/07, Tiago Barcellos Peczenyj <[EMAIL 
> PROTECTED]>
> wrote:
> >
> > Teste dessa forma:
> >
> > if [ -z "${ARQENT}" -o -z "${ARQSAI}" ];
> >
> > normalmente esse tipo de erro acontece devido ao uso de uma variavel sem
> > valor.
> >
> > na verdade vc poderia testar se a variavel $# é igual a 2 tambem ;-)
> >
> > []´s Tiago
> >
> > On 4/28/07, Renato de Oliveira Diogo <[EMAIL 
> > PROTECTED]
> >
> > wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > > Olá pessoal
> > >
> > > estou construindo um script e estou checando a passagem de
> parametros...
> > >
> > > ==
> > > ARQENT=$1;
> > > ARQSAI=$2;
> > > COUNT=1;
> > > ARQTEMP=/tmp/tmpscriptsh_vararqtemp
> > >
> > > LINHA_EXT="c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8";
> > >
> > > if [ -z $ARQENT -o -z $ARQSAI ];
> > > then
> > > echo "script v0.1 - Renato Diogo";
> > > echo "Sintaxe: script {arquivo_entrada} {arquivo_saida}"
> > > exit 1;
> > > fi
> > > ==
> > >
> > > Quandou vou testar, se nao passar nenhum parametro, entra normal, se
> > > passo os dois, também... mas quando coloco somente 1 (que era para
> > > entrar no if) dá o seguinte erro:
> > >
> > > ==
> > > ./script.sh: line 35: [: argument expected
> > > ==
> > >
> > > Alguem pode me dizer o pq?
> > >
> > > []s
> > >
> > >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> >
>
> --
> 
> Renato de Oliveira Diogo
>
> Blueeye Web Solutions
> 14-32243492
>
> Bacharel em Ciência da Computação
> UNESP - Bauru
> Mestrando em Ciência da Computação
> UNESP
>
> [EMAIL PROTECTED] 
> [EMAIL PROTECTED] 
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


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



Re: [shell-script] Mesclar varias linhas de te xto em uma só para formar arquivo CSV

2007-05-03 Por tôpico Alexandre Passos de Matos
O comando split divide um arquivo em vários pedaços. Por default divide em 
blocos de 1000 linhas.

[]s
Alexandre

Renato de Oliveira Diogo <[EMAIL PROTECTED]> escreveu:  
eu usei o awk, da certo para o que eu quero...
 
 agora sobre o comando split o que ele faz?
 
 []s
 
 On 4/28/07, Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> wrote:
 >
 >   Renato,
 >
 > não entendi a regra para mesclar as linhas, mas sugiro que estudes como o
 > awk trabalha com arrays - o comando split pode ser bem util nesse caso.
 >
 > []´s Tiago
 >
 >
 > On 4/26/07, Renato de Oliveira Diogo <[EMAIL 
 > PROTECTED]>
 > wrote:
 > >
 > > Olá pessoal
 > >
 > > preciso construir um script, lendo um arquivo texto ele mescle varias
 > > linhas em uma só baseada nos dois primeiros campos. Cada linha do
 > > arquivo tem esses campos:
 > > Campo1,Campo2,Campo3,Campo4,Campo5,Campo6,Campo7,Campo8
 > >
 > > Através do campo1,campo2 quero unir todas as linhas para ficar uma só,
 > > pois dessas linhas, os campos que estiverem em uma linha não está na
 > > outra (em branco)
 > >
 > > Um pedaçõ do arquivo:
 > > [...]
 > > 20,0,30.0,
 > > 26,999,150.0,
 > > 26,0,,0.0
 > > 23,0,,0.0
 > > 20,0,,0.0
 > > 26,0,,,35.235,30.438,34.44,5
 > > 26,1,,35.235
 > > 23,0,,,41.594,37.8,40.8,9
 > > 20,0,,,52.954,45.16,52.16,13
 > > [...]
 > >
 > > Neste exemplo eu teria linhas deste tipo, pegando uma linha ficaria
 > assim:
 > > 20,0,30.0,
 > > 20,0,,0.0
 > > 20,0,,,52.954,45.16,52.16,13
 > >
 > > Resultado
 > > 20,0,30.0,0.0,52.954,45.16,52.16,13
 > >
 > > Obs.: as linhas, no meio de todas as outras, aparecem em ordem, tipo
 > > assim:
 > > 1 - campo1,campo2,campo3
 > > 2 - campo1,campo2,,campo4
 > > 3 - campo1,campo2,,,campo5,campo6,campo7,campo8
 > >
 > > Alguem pode me auxiliar?
 > >
 > > Depois disso vou importar para o openoffice para montar gráficos,
 > > contas... :) ...
 > >
 > >
 > >
 >
 > --
 > Tiago B Peczenyj
 > Linux User #405772
 >
 > # cd /pub
 > # more beer
 >
 > [As partes desta mensagem que não continham texto foram removidas]
 >
 >  
 >
 
 -- 
 
 Renato de Oliveira Diogo
 
 Blueeye Web Solutions
 14-32243492
 
 Bacharel em Ciência da Computação
 UNESP - Bauru
 Mestrando em Ciência da Computação
 UNESP
 
 [EMAIL PROTECTED]
 [EMAIL PROTECTED]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
   

 __
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Res: [shell-script] Login como root

2007-05-03 Por tôpico Rafa Pongai
Valeu Sérgio,

era exatamente isto que procurava, só que tive que adicionar o "- root" no su, 
porque senão quando logava como root o $USER ainda retornava o nome do usuario 
e não "root".

Obrigado
Rafael


[EMAIL PROTECTED] ~/teste $ cat su.sh

#!/bin/sh



[ $USER == "root" ] || {

  su - root -c "sh su.sh";

  exit;

}



echo "Oi";

exit;

- Mensagem original 
De: Sérgio Durigan Júnior <[EMAIL PROTECTED]>
Para: shell-script@yahoogrupos.com.br
Enviadas: Quarta-feira, 2 de Maio de 2007 17:09:37
Assunto: Re: [shell-script] Login como root









  



On 5/2/07, Rafa Pongai <[EMAIL PROTECTED] com.br> wrote:



> estou fazendo um script que só irá funcionar com o usuário root, e gostaria 
> de fazer esta verificação no script e caso não seja o "root" chamar um "su", 
> o problema é que quando chamo o "su", ele abre um outro terminal e só 
> continua o script quando dou um "exit" no novo bash que o "su" criou, alguém 
> teria alguma idéia para eu poder fazer isto??



Rafa,



Pensando um pouquinho, cheguei à seguinte solução:



[EMAIL PROTECTED] ~/teste $ cat su.sh

#!/bin/sh



[ $USER == "root" ] || {

  su -c "sh su.sh";

  exit;

}



echo "Oi";

exit;



Usei o parâmetro "-c" do "su" para executar um comando, que no caso é

o próprio script que estou rodando. Depois que eu executo esse script

(aí sim com permissão de root!), eu saio fora... Repare que talvez

seja interessante fazer umas checagens pra ver se o usuário conseguiu

se logar com o "su", e talvez imprimir uma mensagem de erro se não

deu... Tenta aí, deve funcionar com você também ;-)



[]s



Sérgio.




  















__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Re: Res: [shell-script] Login como root

2007-05-03 Por tôpico Bruno Gunter Fricke
o "-" é para chamas o enviroment todo. Use sempre assim.

[]'s
Gunter


Em Qui, 2007-05-03 às 07:06 -0700, Rafa Pongai escreveu:
> Valeu Sérgio,
> 
> era exatamente isto que procurava, só que tive que adicionar o "-
> root" no su, porque senão quando logava como root o $USER ainda
> retornava o nome do usuario e não "root".
> 
> Obrigado
> Rafael
> 
> [EMAIL PROTECTED] ~/teste $ cat su.sh
> 
> #!/bin/sh
> 
> [ $USER == "root" ] || {
> 
> su - root -c "sh su.sh";
> 
> exit;
> 
> }
> 
> echo "Oi";
> 
> exit;
> 
> - Mensagem original 
> De: Sérgio Durigan Júnior <[EMAIL PROTECTED]>
> Para: shell-script@yahoogrupos.com.br
> Enviadas: Quarta-feira, 2 de Maio de 2007 17:09:37
> Assunto: Re: [shell-script] Login como root
> 
> On 5/2/07, Rafa Pongai <[EMAIL PROTECTED] com.br> wrote:
> 
> > estou fazendo um script que só irá funcionar com o usuário root, e
> gostaria de fazer esta verificação no script e caso não seja o "root"
> chamar um "su", o problema é que quando chamo o "su", ele abre um
> outro terminal e só continua o script quando dou um "exit" no novo
> bash que o "su" criou, alguém teria alguma idéia para eu poder fazer
> isto??
> 
> Rafa,
> 
> Pensando um pouquinho, cheguei à seguinte solução:
> 
> [EMAIL PROTECTED] ~/teste $ cat su.sh
> 
> #!/bin/sh
> 
> [ $USER == "root" ] || {
> 
> su -c "sh su.sh";
> 
> exit;
> 
> }
> 
> echo "Oi";
> 
> exit;
> 
> Usei o parâmetro "-c" do "su" para executar um comando, que no caso é
> 
> o próprio script que estou rodando. Depois que eu executo esse script
> 
> (aí sim com permissão de root!), eu saio fora... Repare que talvez
> 
> seja interessante fazer umas checagens pra ver se o usuário conseguiu
> 
> se logar com o "su", e talvez imprimir uma mensagem de erro se não
> 
> deu... Tenta aí, deve funcionar com você também ;-)
> 
> []s
> 
> Sérgio.
> 
> 
> 
> __
> Fale com seus amigos de graça com o novo Yahoo! Messenger 
> http://br.messenger.yahoo.com/ 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
> 
>  


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



[shell-script] scp automatizado em script sem pausa para informar a senha ...

2007-05-03 Por tôpico Isamp
Pessoal,

A algum tempo houve uma thread aqui na lista sobre como "automatizar" o 
comando scp.
A ideia original era fazer uma cópia de arquivos via scp sem a "pausa" 
para informar a senha.

Exceto pela troca de chaves RSA, chegou-se a alguma conclusão sobre como 
proceder em BASH ?
except, xargs ... ? Alguma coisa ?

Pergunto porque esta bem dificil pesquisar no yahoogrupos, o mecanismo 
de pesquisa é débil e nem sempre
os participantes especificam de forma clara o assunto da mensagem.

Especificamente, minha necessidade é disparar de um servidor central a 
cópia de N arquivos para N estações
linux de minha rede.


Isamp.



Re: [shell-script] scp automatizado em script sem pausa para informar a senha ...

2007-05-03 Por tôpico Bruno Gunter Fricke
Cara se não for por chave pública, tem que ser com o expect mesmo
(presumo eu).
Algo como

(...)

set timeout 10
eval spawn scp [EMAIL PROTECTED]:arquivo
expect "^(P|p)assword*"
send "senha"
expect "*100*"
close
wait

(...)

Se não funcionar o ^(P|p) usa um "*"  no lugar.

Mas porque não usar a chave? Segurança?


Em Qui, 2007-05-03 às 11:58 -0300, Isamp escreveu:
> Pessoal,
> 
> A algum tempo houve uma thread aqui na lista sobre como "automatizar"
> o 
> comando scp.
> A ideia original era fazer uma cópia de arquivos via scp sem a
> "pausa" 
> para informar a senha.
> 
> Exceto pela troca de chaves RSA, chegou-se a alguma conclusão sobre
> como 
> proceder em BASH ?
> except, xargs ... ? Alguma coisa ?
> 
> Pergunto porque esta bem dificil pesquisar no yahoogrupos, o
> mecanismo 
> de pesquisa é débil e nem sempre
> os participantes especificam de forma clara o assunto da mensagem.
> 
> Especificamente, minha necessidade é disparar de um servidor central
> a 
> cópia de N arquivos para N estações
> linux de minha rede.
> 
> Isamp.
> 
> 
> 
> 
> 
>  


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



Re: [shell-script] scp automatizado em script sem pausa para informar a senha ...

2007-05-03 Por tôpico Otavio Salvador
Isamp <[EMAIL PROTECTED]> writes:

> Pessoal,
>
> A algum tempo houve uma thread aqui na lista sobre como "automatizar" o 
> comando scp.
> A ideia original era fazer uma cópia de arquivos via scp sem a "pausa" 
> para informar a senha.

Eu consigo imaginar somente duas formas para conseguires fazer isso:

 - uso de chaves sem passphrase
 - uso do expect para "digitar" a senha para voce

Sobre o ultimo, indico que voce leia:
http://rootprompt.org/article.php3?article=9187

Contudo acho que voce vai acabar caindo no uso de Perl ou algo mais.

-- 
O T A V I OS A L V A D O R
-
 E-mail: [EMAIL PROTECTED]  UIN: 5906116
 GNU/Linux User: 239058 GPG ID: 49A5F855
 Home Page: http://otavio.ossystems.com.br
-
"Microsoft sells you Windows ... Linux gives
 you the whole house."


Re: [shell-script] scp automatizado em script sem pausa para informar a senha ...

2007-05-03 Por tôpico Otavio Salvador
Bruno Gunter Fricke <[EMAIL PROTECTED]> writes:

> Mas porque não usar a chave? Segurança?

Sinceramente, acho que o script com a senha dentro dele eh BEM mais
_inseguro_ que o uso das chaves.

Caso seja necessario, ele pode inclusive usar passphrase usando o
ssh-agent para nao ter que digitar a mesma enquanto mantem a chave
segura contra copias e tal.

-- 
O T A V I OS A L V A D O R
-
 E-mail: [EMAIL PROTECTED]  UIN: 5906116
 GNU/Linux User: 239058 GPG ID: 49A5F855
 Home Page: http://otavio.ossystems.com.br
-
"Microsoft sells you Windows ... Linux gives
 you the whole house."


[shell-script] Ajuda -Shell Script

2007-05-03 Por tôpico anderson1904
Olá pessoal! Td certo?
Bom , como tenho pouca experiencia em shell resolvi pedir ajuda aqui 
pra vocês.
Seguinte:
Eu uso o Xephem para gerar coordenadas (sol). Tenho também um 
programa (coordenadas) feito em C++ que,  pega o arquivo gerado pelo 
Xephem e elimina as linhas negativas deste arquivo. Executando o 
coordenadas seria assim:

Entre com o nome do arquivo: file.txt(arquivo do xephem)
Nome do arquivo de saida: file1.txt (aquivo sem linhas negativas)
Numero de passos: 720 (este numero é fixo)

PS: aqui o usuario entra com estas informações

A minha duvida é a seguinte:

Preciso de um script shell que faça esta rotina pra mim a partir de 
uma lista de arquivos, ou seja, o programa coordenadas estaria 
recebendo os passos acima automaticamente atraves de uma lista de 
arquivos.txt já definida. Como eu faço o shell executar isso pra mim, 
sem a necessidade de informar arquivo por arquivo, pois eu já tenho 
uma lista com todos os arquivos? Existe esta possibilidade? 
 
Agradeço pela atenção 

Anderson Souza




[shell-script] Problemas para executar script via crontab!!!

2007-05-03 Por tôpico jeffdiasdosantos
Boa tarde galera,

Pasei um bom tempo tentando fazer com que meu script abaixo
funcionasse com o crontab, e nao sabia que nao funcionava porque o
crontab nao guarda variaveis de ambiente, e adicionei algumas
variaveis no meu script. Mais agora o chown nao funciona pq nao aceita
o grupo wheel que exite neste ambiente mais nao consigo passar este
parametro no script. Alguem pode me ajudar?

Script é este:

#!/bin/sh
export PATH=/bin:/usr/bin:/usr/sbin:/etc
ls -l /var/mail/ \
   | awk '
$5 > 1024 && $9 == "root" {
   a[$9]
}
END{
   print "cd /var/mail"
   for(k in a){
  print "rm -rf " k
   }
   for(k in a){
  print "touch " k
  print "chmod 600 " k
  print "chown root:wheel" k
   }
}
' | sh

Jefferson Dias aka LoBoGoL



Re: [shell-script] Ajuda -Shell Script

2007-05-03 Por tôpico Darlon
Posta um exemplo de lista de arquivos e como vc faz a chamada ao programa.
Vai ficar mais fácil de te ajudar.



On 5/3/07, anderson1904 <[EMAIL PROTECTED]> wrote:
>
>   Olá pessoal! Td certo?
> Bom , como tenho pouca experiencia em shell resolvi pedir ajuda aqui
> pra vocês.
> Seguinte:
> Eu uso o Xephem para gerar coordenadas (sol). Tenho também um
> programa (coordenadas) feito em C++ que, pega o arquivo gerado pelo
> Xephem e elimina as linhas negativas deste arquivo. Executando o
> coordenadas seria assim:
>
> Entre com o nome do arquivo: file.txt(arquivo do xephem)
> Nome do arquivo de saida: file1.txt (aquivo sem linhas negativas)
> Numero de passos: 720 (este numero é fixo)
>
> PS: aqui o usuario entra com estas informações
>
> A minha duvida é a seguinte:
>
> Preciso de um script shell que faça esta rotina pra mim a partir de
> uma lista de arquivos, ou seja, o programa coordenadas estaria
> recebendo os passos acima automaticamente atraves de uma lista de
> arquivos.txt já definida. Como eu faço o shell executar isso pra mim,
> sem a necessidade de informar arquivo por arquivo, pois eu já tenho
> uma lista com todos os arquivos? Existe esta possibilidade?
>
> Agradeço pela atenção
>
> Anderson Souza
>
>  
>



-- 
--
O sistema pediu:"Requires Windows 9x, Windows 2000 or better".
Então eu instalei Linux.


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



Re: [shell-script] Ajuda -Shell Script

2007-05-03 Por tôpico Alexandre Passos de Matos
Oi Anderson!

Sim, existe. Se os arquivos estiverem em um diretório e neste diretório só 
existam estes arquivos, vc pode fazer um loop assim:

for i in `ls nome_do_diretorio`
do
   seus_comandos
done

Em cada volta do loop a variável i recebe o nome de um arquivo, na ordem da 
saída do ls. Então vc passaria $i como parâmetro pro programa coordenadas. Este 
programa coordenadas é interativo ou pode ser rodado com passagem de parâmetros?

Se os arquivos tiverem um padrão de nome, vc pode melhorar o ls colocando ls 
nome_do_diretorio/arquivo*

É isso q vc precisa?

[]s
Alexandre


anderson1904 <[EMAIL PROTECTED]> escreveu:  Olá 
pessoal! Td certo?
 Bom , como tenho pouca experiencia em shell resolvi pedir ajuda aqui 
 pra vocês.
 Seguinte:
 Eu uso o Xephem para gerar coordenadas (sol). Tenho também um 
 programa (coordenadas) feito em C++ que,  pega o arquivo gerado pelo 
 Xephem e elimina as linhas negativas deste arquivo. Executando o 
 coordenadas seria assim:
 
 Entre com o nome do arquivo: file.txt(arquivo do xephem)
 Nome do arquivo de saida: file1.txt (aquivo sem linhas negativas)
 Numero de passos: 720 (este numero é fixo)
 
 PS: aqui o usuario entra com estas informações
 
 A minha duvida é a seguinte:
 
 Preciso de um script shell que faça esta rotina pra mim a partir de 
 uma lista de arquivos, ou seja, o programa coordenadas estaria 
 recebendo os passos acima automaticamente atraves de uma lista de 
 arquivos.txt já definida. Como eu faço o shell executar isso pra mim, 
 sem a necessidade de informar arquivo por arquivo, pois eu já tenho 
 uma lista com todos os arquivos? Existe esta possibilidade? 
  
 Agradeço pela atenção 
 
 Anderson Souza
 
 
 
   

 __
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



[shell-script] sed

2007-05-03 Por tôpico Emiliano Chemello
Oi Gente,

Tenho vários arquivos (s100.t, s200.t, s300.t) e gostaria de fazer uma 
pesquisa em todos, procurando pela linha '1' e que estas linhas sejam 
armazenadas em um arquivo 'teste'. Fiz a seguinte linha de comando:

sed -n 1p s*.t >> teste


Só que não funciona. Alguém tem alguma sugestão? Obrigado! Emiliano



Re: [shell-script] sed

2007-05-03 Por tôpico edjunior
hey,

em seu comando, o sed está agrupando todos arquivos em apenas um.
Creio que o `head` pode fazer isso de uma forma mais simples. Tente:

$ head -q -n 1 s*.t > teste

(com o parâmetro '-q', o `head` não imprime o nome dos arquivos)

hasta!

jr.

On 5/3/07, Emiliano Chemello <[EMAIL PROTECTED]> wrote:
> Oi Gente,
>
> Tenho vários arquivos (s100.t, s200.t, s300.t) e gostaria de fazer uma
> pesquisa em todos, procurando pela linha '1' e que estas linhas sejam
> armazenadas em um arquivo 'teste'. Fiz a seguinte linha de comando:
>
> sed -n 1p s*.t >> teste
>
>
> Só que não funciona. Alguém tem alguma sugestão? Obrigado! Emiliano
>
>
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> -
> Sair da lista: [EMAIL PROTECTED]
> -
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>


[shell-script] Capturar tecla ESC

2007-05-03 Por tôpico Carlos Alberto Teixeira
Olá pessoal, tudo bem? Faz tempo que estou na lista, mas esta é a primeira vez 
que posto uma dúvida.

Eu quero capturar a tecla ESC num laço while. Ou seja, quero sair do laço 
quando eu digitar ESC. O código que estou usando é este:

opcao=# inicializa variavel com valor nulo
while [ ! "$opcao" = \033 ]; # enquanto opcao diferente de "s"
do
read -n 1 opcao;
case "$opcao" in
  [cC]) menucliente;;
  [mM]) menumerc;;
  [vV]) menuvendas;;
  *);;   # nenhuma das opcoes anteriores
esac
done

Mas ele não está funcionando (não consigo sair do laço). Eu sei que se eu 
colocar aspas duplas ("\033"), aí é q não dá certo mesmo. Alguém pode me ajudar?

PARABÉNS PELA LISTA

Atenciosamente,
Carlos Alberto Teixeira Magalhães

 __
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

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



Re: [shell-script] Capturar tecla ESC

2007-05-03 Por tôpico Reinaldo Carvalho
Depois de muita criatividade...

if [ '^[$' = $(cat -vet <<< "$opcao") ] ; then
echo ESC
fi

-- 
Reinaldo Carvalho


On 5/3/07, Carlos Alberto Teixeira <[EMAIL PROTECTED]> wrote:
> Olá pessoal, tudo bem? Faz tempo que estou na lista, mas esta é a primeira 
> vez que posto uma dúvida.
>
> Eu quero capturar a tecla ESC num laço while. Ou seja, quero sair do laço 
> quando eu digitar ESC. O código que estou usando é este:
>
> opcao=# inicializa variavel com valor nulo
> while [ ! "$opcao" = \033 ]; # enquanto opcao diferente de "s"
> do
> read -n 1 opcao;
> case "$opcao" in
>   [cC]) menucliente;;
>   [mM]) menumerc;;
>   [vV]) menuvendas;;
>   *);;   # nenhuma das opcoes anteriores
> esac
> done
>
> Mas ele não está funcionando (não consigo sair do laço). Eu sei que se eu 
> colocar aspas duplas ("\033"), aí é q não dá certo mesmo. Alguém pode me 
> ajudar?
>
> PARABÉNS PELA LISTA
>
> Atenciosamente,
> Carlos Alberto Teixeira Magalhães
>
>  __
> Fale com seus amigos  de graça com o novo Yahoo! Messenger
> http://br.messenger.yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> -
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> -
> Sair da lista: [EMAIL PROTECTED]
> -
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> -
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>