Ir direto para busca.
shell-script · Lista brasileira sobre Linux Shell Script

Informações sobre o grupo

  • Associados: 3870
  • Categoria: Linux
  • Criado em: Jun 5, 2000
  • Idioma: Português
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode ordenar suas mensagens por data? Basta clicar no link da coluna data. Suas preferências serão lembradas para que você não precise fazer isso novamente sempre que retornar.

Mensagens

  Ajuda
Avançado
mensagens 24346 - 24375 de 36015   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 24346 - 24375 de 36015   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens: Exibir resumo de mensagens Classificar por data ^  
#24346 De: "bossonaroesao06" <bossonaroesao06@...>
Data: Qua, 7 de Nov de 2007 2:45 pm
Assunto: Redirecionar erro na tela
bossonaroesao06
Enviar e-mail Enviar e-mail
 
Pessoal,
Estou tentando verificar a existência da conexão ppp0 através do
ifconfig e até funnciona certinho. O problema é que quando não
existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar
isso?

Script:
#!/bin/bash
echo "Verificando a interface ppp0..."
placappp=$(ifconfig ppp0 | grep "ppp0: erro")
if [ -z "$placappp" ]; then
    echo "A Interface ppp0 nao existe..."
else
    echo "A Interface ppp0 existe..."
fi


Olhem o resultado quando nao existe a ppp0:

#Verificando a interface ppp0...
#ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao
encontrado
#A Interface ppp0 nao existe...


Eu gostaria que ficasse assim:

#Verificando a interface ppp0...
#A Interface ppp0 nao existe...

Alguem me ajuda?
Obrigado

#24347 De: "Edjunior Machado" <edjunior@...>
Data: Qua, 7 de Nov de 2007 3:12 pm
Assunto: Re: Telnet com Sqlplus
edjrbm
Enviar e-mail Enviar e-mail
 
Hey Sr. Carlos,

<tentando advinhar...>
pelo log que você passou, parece que o seu script principal está
passando os parâmetros de forma errônea para o script expect:

> login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038

Por acaso, os dados na frente de "login: " não seriam exatamente o que
você estava passando como parâmetro, porém concatenados?
Bem, em primeiro lugar, eu tentaria executar o script expect
manualmente, garantindo que o mesmo está correto. Em seguida,
verificaria como ele está sendo chamado pelo script principal.

Aproveitando, uma dica (na verdade não tenho certeza se é necessário;
apesar de cair mais no expect, talvez fugindo de escopo, alguém da
poderia corrigir caso esteja incorreto): nos comandos de "send" do
expect, acredito que você precisa enviar também o '\r', simulando o
seu "Enter" após preenchimento do campo, como em:

> send "$user\r"


Hasta!


jr.

On Nov 7, 2007 9:14 AM, Carlos Ferreira <chlferreira@...> wrote:
> Edjunior,
> realmente o erro era o comentário na mesma linha, obrigado pela ajuda, mas
> agora estou chegando até o login no telnet e a senha não é passada, fica
> esperando a senha até que ele escreve todos os outros comandos na mesma
> linha e cai.
> o erro:
> AIX Version 5
> (C) Copyrights by IBM and by others 1982, 2007.
> login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038
> Login timed out after 60 seconds.
>
> Connection closed by foreign host
>
> []s
>
> Carlos Ferreira
>
> Em 07/11/07, Edjunior Machado <edjunior@...> escreveu:
> >
> >   Hey Sr. Carlos,
> >
> > apesar de não ter muito know-how no assunto, creio que esse é um
> > problema no seu script em expect. Procure eliminar os comentários de
> > final de linha (as frases após '#') ou deixá-los em uma linha sem
> > código. Por exemplo, tente substituir:
> >
> > set ip [lindex $argv 0] # primeiro argumento
> > set user [lindex $argv 1] # segundo... etc
> >
> > por
> >
> > # primeiro argumento
> > set ip [lindex $argv 0]
> > # segundo... etc
> > set user [lindex $argv 1]
> >
> > Espero ter ajudado.
> > Hasta!
> >
> > jr.
> >
> >
> > On Nov 7, 2007 8:15 AM, Carlos Ferreira
<chlferreira@...<chlferreira%40gmail.com>>
>
> > wrote:
> > > Tiago,
> > > primeiramente obrigado pela ajuda, mas estou recebendo o seguinte erro:
> > > wrong # args: should be "set varName ?newValue?
> > > while executing
> > > "set ip [lindex $argv 0] # primeiro argumento"
> > > (file "./conexao" line 4)
> > >
> > > Meu código:
> > > #!/bin/bash
> > > # Programa para conectar e abrir sqlplus
> > > #
> > >
> > > ######### INICIAR VARIAVEIS ##############
> > > vl_arqconf=tnsnames.txt
> > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > ######### FUNÇÔES ########################
> > >
> > >
> > > ######### INICIAR PROGRAMA ###############
> > >
> > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > echo $vl_ip
> > > ./conexao ${vl_ip} USUARIO SENHA "ORACLE_SID=${vl_banco}a"
> > >
> > > ########## FIM DO PROGRAMA ###############
> > >
> > > #!/usr/bin/expect
> > > set timeout 20
> > >
> > > set ip [lindex $argv 0] # primeiro argumento
> > > set user [lindex $argv 1] # segundo... etc
> > > set password [lindex $argv 2]
> > > set oracmd [lindex $argv 3]
> > >
> > > spawn telnet $ip # aqui ele 'pega' o telnet
> > >
> > > expect "login:" # aha, pediu o login?
> > > send "$user " # toma o username do cara!
> > >
> > > expect "password:" # mesma coisa.
> > > send "$password " # facil não?
> > >
> > > send "$oracmd" # agora aquele toque final
> > > send "sqlplus /"
> > >
> > > interact # E aqui devolve a interação para o usuario
> > >
> > > []s
> > >
> > > Carlos Ferreira
> > >
> > > Em 06/11/07, Tiago Barcellos Peczenyj
<tiago.peczenyj@...<tiago.peczenyj%40gmail.com>>
>
> > escreveu:
> > > >
> > > > use Expect:
> > > >
> > > > Inspirado aqui:
> > > > http://www.osix.net/modules/article/?id=30
> > > >
> > > > #!/bin/bash
> > > > vl_arqconf=tnsnames.txt
> > > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > >
> > > > vl_ip=`grep -i $vl_banco $vl_arqconf | cut -f2 -d\;`
> > > >
> > > > ./conexao ${vl_ip} usuario senha "ORACLE_SID=${vl_banco}a"
> > > >
> > > > script 'conexao' abaixo:
> > > > #!/usr/bin/expect
> > > > set timeout 20
> > > >
> > > > set ip [lindex $argv 0] # primeiro argumento
> > > > set user [lindex $argv 1] # segundo... etc
> > > > set password [lindex $argv 2]
> > > > set oracmd [lindex $argv 3]
> > > >
> > > > spawn telnet $ip # aqui ele 'pega' o telnet
> > > >
> > > > expect "login:" # aha, pediu o login?
> > > > send "$user " # toma o username do cara!
> > > >
> > > > expect "assword:" # mesma coisa.
> > > > send "$password " # facil não?
> > > >
> > > > send "$oracmd" # agora aquele toque final
> > > > send "sqlplus /"
> > > >
> > > > interact # E aqui devolve a interação para o usuario
> > > > On Nov 6, 2007 5:19 PM, Carlos Ferreira
<chlferreira@...<chlferreira%40gmail.com>
> > <chlferreira%40gmail.com>>
> > > > wrote:
> > > > >
> > > > > Pessoal
> > > > > estou com o seguinte problema, fiz o script abaixo dentro de um
> > script
> > > > > shell:
> > > > > #!/bin/bash
> > > > > # Programa para conectar e abrir sqlplus
> > > > > #
> > > > >
> > > > > ######### INICIAR VARIAVEIS ##############
> > > > > vl_arqconf=tnsnames.txt
> > > > > vl_banco=`echo $1 | tr 'A-Z' 'a-z'`
> > > > >
> > > > > ######### INICIAR PROGRAMA ###############
> > > > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > > >
> > > > > (echo usuario; sleep 3; echo senha; sleep 3; echo
> > > > > ORACLE_SID=${vl_banco}a; sleep 3; echo sqlplus /; sleep 3) | telnet
> > > > > ${vl_ip}
> > > > >
> > > > > ####### fim do script ###################
> > > > >
> > > > > Acontece que eu queria que o script me deixasse o sqlplus aberto na
> > > > > tela, mas isto não acontece, alguma sugestão?
> > > > >
> > > > > Desde ja agradeço a atenção de todos.
> > > > >
> > > > > []s
> > > > >
> > > > > Carlos Ferreira
> > > > >
> > > > >
> > > >
> > > > --
> > > > Tiago B Peczenyj
> > > > Linux User #405772
> > > >
> > > > http://peczenyj.blogspot.com/
> > > > "what does not kill us makes us stronger"
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Carlos Ferreira
> > > Analista de Desenvolvimento
> > > Niterói - RJ - Brasil
> > > LinuxUser #271002
> > > http://www.carnivorosemdentes.blogger.com.br/
> > > ================
> > >
> > >
> > > [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:
shell-script-unsubscribe@...<shell-script-unsubscribe%40yahoogrup\
os.com.br>
> > > ----------------------------------------------------------
> > > 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
> > >
> > >
> > >
> >
> >
> >
>
>
>
> --
>
> Carlos Ferreira
> Analista de Desenvolvimento
> Niterói - RJ - Brasil
> LinuxUser  #271002
> http://www.carnivorosemdentes.blogger.com.br/
> ================
>
>
> [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: shell-script-unsubscribe@...
> ---------------------------------------------------------------------
> 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
>
>
>

#24348 De: "Tiago Barcellos Peczenyj" <tiago.peczenyj@...>
Data: Qua, 7 de Nov de 2007 3:37 pm
Assunto: Re: Redirecionar erro na tela
grande_uosh
Enviar e-mail Enviar e-mail
 
Acredito que, se vc redirecionar a saída de erro para a saída padrão
no ifconfig tudo deve funcionar

ifconfig lalala 2>&1 | grep ...

On 11/7/07, bossonaroesao06 <bossonaroesao06@...> wrote:
>
>
>
>
>
>
> Pessoal,
>  Estou tentando verificar a existência da conexão ppp0 através do
>  ifconfig e até funnciona certinho. O problema é que quando não
>  existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar
>  isso?
>
>  Script:
>  #!/bin/bash
>  echo "Verificando a interface ppp0..."
>  placappp=$(ifconfig ppp0 | grep "ppp0: erro")
>  if [ -z "$placappp" ]; then
>     echo "A Interface ppp0 nao existe..."
>  else
>     echo "A Interface ppp0 existe..."
>  fi
>
>  Olhem o resultado quando nao existe a ppp0:
>
>  #Verificando a interface ppp0...
>  #ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao
>  encontrado
>  #A Interface ppp0 nao existe...
>
>  Eu gostaria que ficasse assim:
>
>  #Verificando a interface ppp0...
>  #A Interface ppp0 nao existe...
>
>  Alguem me ajuda?
>  Obrigado
>
>



--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"

#24349 De: "bossonaroesao06" <bossonaroesao06@...>
Data: Qua, 7 de Nov de 2007 3:54 pm
Assunto: Re: Redirecionar erro na tela
bossonaroesao06
Enviar e-mail Enviar e-mail
 
Deu certo
Obrigado

#24350 De: "bossonaroesao06" <bossonaroesao06@...>
Data: Qua, 7 de Nov de 2007 4:45 pm
Assunto: Re: Redirecionar erro na tela
bossonaroesao06
Enviar e-mail Enviar e-mail
 
Ops..
Nao deu nao...
Quando eu redireciono a saida dessa forma, ele nao coloca o valor
dentro da variavel. Entao sempre que eu for testar a variavel ela vai
estar vazia ja que a saida do ifconfig foi redirecionada.

Alguem pode ajudar a resolver isso??
Obrigado

#24351 De: "Carlos Ferreira" <chlferreira@...>
Data: Qua, 7 de Nov de 2007 4:58 pm
Assunto: Re: Telnet com Sqlplus
chlferreira
Enviar e-mail Enviar e-mail
 
Edjunior,
acertou de novo, estou postando os dois scripts para que fique no histórico
da lista a solução.
Pessoal obrigado a todos em especial ao Thiago e Edjunior.
[]s

Carlos Ferreira
meusqlplus.sh
#!/bin/bash
# Programa para conectar e abrir sqlplus
# Autor: Carlos Ferreira
# Data: 07/11/2007
# Versão 1.0
# Agradecimentos
# Tiago Barcellos Peczenyj e
# Edjunior Machado

######### INICIAR VARIAVEIS ##############
vl_arqconf=tnsnames.txt
vl_banco=`tr 'A-Z' 'a-z' <<< $1`
######### FUNÇÔES ########################


######### INICIAR PROGRAMA ###############

vl_ip=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f2 -d\;`
vl_usuario=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f3 -d\;`
vl_senha=`cat ${vl_arqconf} | grep -i ${vl_banco} | cut -f4 -d\;`
./conexao ${vl_ip} ${vl_usuario} ${vl_senha} "ORACLE_SID=${vl_banco}a"

############## fim #######################################
conexão
#!/usr/bin/expect
# Autor: Carlos Ferreira
# Data: 07/11/2007
# Versão 1.0
# Agradecimentos
# Tiago Barcellos Peczenyj e
# Edjunior Machado

set timeout 20

set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set oracmd [lindex $argv 3]

spawn telnet $ip
expect "login:"
send "$user\r"
expect "password"
send "$password\r"
send "$oracmd\r"
send "sqlplus /\r"
interact

########## fim #############

Em 07/11/07, Edjunior Machado <edjunior@...> escreveu:
>
>   Hey Sr. Carlos,
>
> <tentando advinhar...>
> pelo log que você passou, parece que o seu script principal está
> passando os parâmetros de forma errônea para o script expect:
>
> > login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038
>
> Por acaso, os dados na frente de "login: " não seriam exatamente o que
> você estava passando como parâmetro, porém concatenados?
> Bem, em primeiro lugar, eu tentaria executar o script expect
> manualmente, garantindo que o mesmo está correto. Em seguida,
> verificaria como ele está sendo chamado pelo script principal.
>
> Aproveitando, uma dica (na verdade não tenho certeza se é necessário;
> apesar de cair mais no expect, talvez fugindo de escopo, alguém da
> poderia corrigir caso esteja incorreto): nos comandos de "send" do
> expect, acredito que você precisa enviar também o '\r', simulando o
> seu "Enter" após preenchimento do campo, como em:
>
> > send "$user\r"
>
> Hasta!
>
> jr.
>
>
> On Nov 7, 2007 9:14 AM, Carlos Ferreira
<chlferreira@...<chlferreira%40gmail.com>>
> wrote:
> > Edjunior,
> > realmente o erro era o comentário na mesma linha, obrigado pela ajuda,
> mas
> > agora estou chegando até o login no telnet e a senha não é passada, fica
> > esperando a senha até que ele escreve todos os outros comandos na mesma
> > linha e cai.
> > o erro:
> > AIX Version 5
> > (C) Copyrights by IBM and by others 1982, 2007.
> > login: usuariosenhaORACLE_SID=sid_do_bancoasqlplus //dev/pts/3: 3004-038
> > Login timed out after 60 seconds.
> >
> > Connection closed by foreign host
> >
> > []s
> >
> > Carlos Ferreira
> >
> > Em 07/11/07, Edjunior Machado <edjunior@... <edjunior%40gmail.com>>
> escreveu:
> > >
> > > Hey Sr. Carlos,
> > >
> > > apesar de não ter muito know-how no assunto, creio que esse é um
> > > problema no seu script em expect. Procure eliminar os comentários de
> > > final de linha (as frases após '#') ou deixá-los em uma linha sem
> > > código. Por exemplo, tente substituir:
> > >
> > > set ip [lindex $argv 0] # primeiro argumento
> > > set user [lindex $argv 1] # segundo... etc
> > >
> > > por
> > >
> > > # primeiro argumento
> > > set ip [lindex $argv 0]
> > > # segundo... etc
> > > set user [lindex $argv 1]
> > >
> > > Espero ter ajudado.
> > > Hasta!
> > >
> > > jr.
> > >
> > >
> > > On Nov 7, 2007 8:15 AM, Carlos Ferreira
<chlferreira@...<chlferreira%40gmail.com>
> <chlferreira%40gmail.com>>
> >
> > > wrote:
> > > > Tiago,
> > > > primeiramente obrigado pela ajuda, mas estou recebendo o seguinte
> erro:
> > > > wrong # args: should be "set varName ?newValue?
> > > > while executing
> > > > "set ip [lindex $argv 0] # primeiro argumento"
> > > > (file "./conexao" line 4)
> > > >
> > > > Meu código:
> > > > #!/bin/bash
> > > > # Programa para conectar e abrir sqlplus
> > > > #
> > > >
> > > > ######### INICIAR VARIAVEIS ##############
> > > > vl_arqconf=tnsnames.txt
> > > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > > ######### FUNÇÔES ########################
> > > >
> > > >
> > > > ######### INICIAR PROGRAMA ###############
> > > >
> > > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > > echo $vl_ip
> > > > ./conexao ${vl_ip} USUARIO SENHA "ORACLE_SID=${vl_banco}a"
> > > >
> > > > ########## FIM DO PROGRAMA ###############
> > > >
> > > > #!/usr/bin/expect
> > > > set timeout 20
> > > >
> > > > set ip [lindex $argv 0] # primeiro argumento
> > > > set user [lindex $argv 1] # segundo... etc
> > > > set password [lindex $argv 2]
> > > > set oracmd [lindex $argv 3]
> > > >
> > > > spawn telnet $ip # aqui ele 'pega' o telnet
> > > >
> > > > expect "login:" # aha, pediu o login?
> > > > send "$user " # toma o username do cara!
> > > >
> > > > expect "password:" # mesma coisa.
> > > > send "$password " # facil não?
> > > >
> > > > send "$oracmd" # agora aquele toque final
> > > > send "sqlplus /"
> > > >
> > > > interact # E aqui devolve a interação para o usuario
> > > >
> > > > []s
> > > >
> > > > Carlos Ferreira
> > > >
> > > > Em 06/11/07, Tiago Barcellos Peczenyj
<tiago.peczenyj@...<tiago.peczenyj%40gmail.com>
> <tiago.peczenyj%40gmail.com>>
> >
> > > escreveu:
> > > > >
> > > > > use Expect:
> > > > >
> > > > > Inspirado aqui:
> > > > > http://www.osix.net/modules/article/?id=30
> > > > >
> > > > > #!/bin/bash
> > > > > vl_arqconf=tnsnames.txt
> > > > > vl_banco=`tr 'A-Z' 'a-z' <<< $1`
> > > > >
> > > > > vl_ip=`grep -i $vl_banco $vl_arqconf | cut -f2 -d\;`
> > > > >
> > > > > ./conexao ${vl_ip} usuario senha "ORACLE_SID=${vl_banco}a"
> > > > >
> > > > > script 'conexao' abaixo:
> > > > > #!/usr/bin/expect
> > > > > set timeout 20
> > > > >
> > > > > set ip [lindex $argv 0] # primeiro argumento
> > > > > set user [lindex $argv 1] # segundo... etc
> > > > > set password [lindex $argv 2]
> > > > > set oracmd [lindex $argv 3]
> > > > >
> > > > > spawn telnet $ip # aqui ele 'pega' o telnet
> > > > >
> > > > > expect "login:" # aha, pediu o login?
> > > > > send "$user " # toma o username do cara!
> > > > >
> > > > > expect "assword:" # mesma coisa.
> > > > > send "$password " # facil não?
> > > > >
> > > > > send "$oracmd" # agora aquele toque final
> > > > > send "sqlplus /"
> > > > >
> > > > > interact # E aqui devolve a interação para o usuario
> > > > > On Nov 6, 2007 5:19 PM, Carlos Ferreira
<chlferreira@...<chlferreira%40gmail.com>
> <chlferreira%40gmail.com>
> > > <chlferreira%40gmail.com>>
> > > > > wrote:
> > > > > >
> > > > > > Pessoal
> > > > > > estou com o seguinte problema, fiz o script abaixo dentro de um
> > > script
> > > > > > shell:
> > > > > > #!/bin/bash
> > > > > > # Programa para conectar e abrir sqlplus
> > > > > > #
> > > > > >
> > > > > > ######### INICIAR VARIAVEIS ##############
> > > > > > vl_arqconf=tnsnames.txt
> > > > > > vl_banco=`echo $1 | tr 'A-Z' 'a-z'`
> > > > > >
> > > > > > ######### INICIAR PROGRAMA ###############
> > > > > > vl_ip=`cat $vl_arqconf | grep -i $vl_banco | cut -f2 -d\;`
> > > > > >
> > > > > > (echo usuario; sleep 3; echo senha; sleep 3; echo
> > > > > > ORACLE_SID=${vl_banco}a; sleep 3; echo sqlplus /; sleep 3) |
> telnet
> > > > > > ${vl_ip}
> > > > > >
> > > > > > ####### fim do script ###################
> > > > > >
> > > > > > Acontece que eu queria que o script me deixasse o sqlplus aberto
> na
> > > > > > tela, mas isto não acontece, alguma sugestão?
> > > > > >
> > > > > > Desde ja agradeço a atenção de todos.
> > > > > >
> > > > > > []s
> > > > > >
> > > > > > Carlos Ferreira
> > > > > >
> > > > > >
> > > > >
> > > > > --
> > > > > Tiago B Peczenyj
> > > > > Linux User #405772
> > > > >
> > > > > http://peczenyj.blogspot.com/
> > > > > "what does not kill us makes us stronger"
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Carlos Ferreira
> > > > Analista de Desenvolvimento
> > > > Niterói - RJ - Brasil
> > > > LinuxUser #271002
> > > > http://www.carnivorosemdentes.blogger.com.br/
> > > > ================
> > > >
> > > >
> > > > [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:
shell-script-unsubscribe@...<shell-script-unsubscribe%40yahoogrup\
os.com.br>
> <shell-script-unsubscribe%40yahoogrupos.com.br>
> > > > ----------------------------------------------------------
> > > > 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
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> >
> > Carlos Ferreira
> > Analista de Desenvolvimento
> > Niterói - RJ - Brasil
> > LinuxUser #271002
> > http://www.carnivorosemdentes.blogger.com.br/
> > ================
> >
> >
> > [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:
shell-script-unsubscribe@...<shell-script-unsubscribe%40yahoogrup\
os.com.br>
> > ----------------------------------------------------------
> > 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
> >
> >
> >
>
>
>



--
Carlos Ferreira
Analista de Desenvolvimento
Niterói - RJ - Brasil
LinuxUser  #271002
http://www.carnivorosemdentes.blogger.com.br/
================


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

#24352 De: "Flavio Junior" <billpp@...>
Data: Qua, 7 de Nov de 2007 4:59 pm
Assunto: Re: Re: Redirecionar erro na tela
billpp@...
Enviar e-mail Enviar e-mail
 
faz:

ifconfig ppp0 >/dev/null 2>&1 && echo existe ppp0 || echo nao existe ppp0


Flavio do Carmo Junior

On Nov 7, 2007 2:45 PM, bossonaroesao06 <bossonaroesao06@...> wrote:
>
>
>
>
>
>
> Ops..
>  Nao deu nao...
>  Quando eu redireciono a saida dessa forma, ele nao coloca o valor
>  dentro da variavel. Entao sempre que eu for testar a variavel ela vai
>  estar vazia ja que a saida do ifconfig foi redirecionada.
>
>  Alguem pode ajudar a resolver isso??
>  Obrigado
>
>

#24353 De: Eduardo Lucas <eduardo.lucas@...>
Data: Qua, 7 de Nov de 2007 7:14 pm
Assunto: Ler Linhas do Arquivo
eduardo_lsf
Enviar e-mail Enviar e-mail
 
Gurizada!
..tenho um arquivo texto..com o formato abaixo..:

10393039374943  030490   303202   39302
30484030393903  403032   223212   33201
3038947738383   303844   423434   44343
43434343434344  434343   434344    32323
30484030393903  403032   223212   33201
10393039374943  030490   303202   39302

preciso fazer um for... que leia linha por linha deste arquivo....
preciso que a cada laço do for, tenha a seguinte saida

var1= 39302 <- ultima coluna da primeira linha
var2= 33201<- ultima coluna da segunda linha

no proximo laço seria..:

var1= 44343 <- ultima coluna da terceira linha
var2= 32323 <- ultima coluna da quarta linha

alguma ideia...

#24354 De: "Gentil de Bortoli Jr" <listas@...>
Data: Qua, 7 de Nov de 2007 5:32 pm
Assunto: Re: Ler Linhas do Arquivo
gentil.bortoli
Enviar e-mail Enviar e-mail
 
On 11/7/07, Eduardo Lucas <eduardo.lucas@...> wrote:
>  10393039374943  030490   303202   39302
>  30484030393903  403032   223212   33201
>  3038947738383   303844   423434   44343
>  43434343434344  434343   434344    32323
>  30484030393903  403032   223212   33201
>  10393039374943  030490   303202   39302
>
>  preciso fazer um for... que leia linha por linha deste arquivo....
>  preciso que a cada laço do for, tenha a seguinte saida
>
>  var1= 39302 <- ultima coluna da primeira linha
>  var2= 33201<- ultima coluna da segunda linha
>
>  no proximo laço seria..:
>
>  var1= 44343 <- ultima coluna da terceira linha
>  var2= 32323 <- ultima coluna da quarta linha

Olá, Eduardo. Segue um exemplo com base em seu trecho de arquivo e
considerando que o separador entre os campos é um espaço:

#!/bin/bash

IFS=" "

i=1

while read campo1 campo2 campo3 campo4; do
     eval var${i}=${campo4}
     let i++
done < teste.txt

A idéia está dada. É só questão de adaptar agora. :)

[]
Gentil.

#24355 De: miranda <miranda@...>
Data: Qua, 7 de Nov de 2007 6:32 pm
Assunto: Re: Ler Linhas do Arquivo
townscream
Enviar e-mail Enviar e-mail
 
se o for lerá linha por linha
após ler a primeira linha , ou seja , no primeiro laço
ainda não terá informação da segunda linha .
Não é meio impossível isso , não ?
A não ser que possa ler de duas em duas linhas ...

On Wed, 2007-11-07 at 15:14 -0400, Eduardo Lucas wrote:
> Gurizada!
> ..tenho um arquivo texto..com o formato abaixo..:
>
> 10393039374943 030490 303202 39302
> 30484030393903 403032 223212 33201
> 3038947738383 303844 423434 44343
> 43434343434344 434343 434344 32323
> 30484030393903 403032 223212 33201
> 10393039374943 030490 303202 39302
>
> preciso fazer um for... que leia linha por linha deste arquivo....
> preciso que a cada laço do for, tenha a seguinte saida
>
> var1= 39302 <- ultima coluna da primeira linha
> var2= 33201<- ultima coluna da segunda linha
>
> no proximo laço seria..:
>
> var1= 44343 <- ultima coluna da terceira linha
> var2= 32323 <- ultima coluna da quarta linha
>
> alguma ideia...
>
>
>
>

#24356 De: Welder Kopti <welderkopti@...>
Data: Qua, 7 de Nov de 2007 5:41 pm
Assunto: Res: Ler Linhas do Arquivo
welderkopti
Enviar e-mail Enviar e-mail
 
Aloha!

Poderia usar o seguinte..
cat <arquivo_texto> | tr -s ' ' ' ' | cut -f<numero_do_campo> -d' '

uso o tr -s ' ' ' '  para deixar apenas um espaço em branco onde tiver mais do
que um, para facilitar no cut

exemplo de como ficaria o output do comando..

[welder@jupiter ~]# cat arriba.txt | tr -s ' ' ' ' | cut -f1 -d' '
10393039374943
30484030393903
3038947738383
43434343434344
30484030393903
10393039374943




----- Mensagem original ----
De: Eduardo Lucas <eduardo.lucas@...>
Para: shell-script@...
Enviadas: Quarta-feira, 7 de Novembro de 2007 17:14:41
Assunto: [shell-script] Ler Linhas do Arquivo

Gurizada!
..tenho um arquivo texto..com o formato abaixo..:

10393039374943  030490  303202  39302
30484030393903  403032  223212  33201
3038947738383  303844  423434  44343
43434343434344  434343  434344    32323
30484030393903  403032  223212  33201
10393039374943  030490  303202  39302

preciso fazer um for... que leia linha por linha deste arquivo....
preciso que a cada laço do for, tenha a seguinte saida

var1= 39302 <- ultima coluna da primeira linha
var2= 33201<- ultima coluna da segunda linha

no proximo laço seria..:

var1= 44343 <- ultima coluna da terceira linha
var2= 32323 <- ultima coluna da quarta linha

alguma ideia...


---------------------------------------------------------------------
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: shell-script-unsubscribe@...
---------------------------------------------------------------------
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


       Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail.yahoo.com/

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

#24357 De: mups.cp <mups.cp@...>
Data: Qua, 7 de Nov de 2007 5:32 pm
Assunto: Re: Ler Linhas do Arquivo
mups_cp
Enviar e-mail Enviar e-mail
 
Supondo que esta sequência está em um arquivo teste.txt. Usando:
cat teste.txt | awk '{print $4}'

Você terá o resultado que você quer.
Agora se você precisa pegar os resultados de saída 2 a 2, então você
pode colocar um if no script awk para fazer o mapeamento desejado.

On Nov 7, 2007 5:14 PM, Eduardo Lucas <eduardo.lucas@...> wrote:
>
>
>
>
> Gurizada!
> ..tenho um arquivo texto..com o formato abaixo..:
>
> 10393039374943 030490 303202 39302
> 30484030393903 403032 223212 33201
> 3038947738383 303844 423434 44343
> 43434343434344 434343 434344 32323
> 30484030393903 403032 223212 33201
> 10393039374943 030490 303202 39302
>
> preciso fazer um for... que leia linha por linha deste arquivo....
> preciso que a cada laço do for, tenha a seguinte saida
>
> var1= 39302 <- ultima coluna da primeira linha
> var2= 33201<- ultima coluna da segunda linha
>
> no proximo laço seria..:
>
> var1= 44343 <- ultima coluna da terceira linha
> var2= 32323 <- ultima coluna da quarta linha
>
> alguma ideia...
>

#24358 De: mups.cp <mups.cp@...>
Data: Qua, 7 de Nov de 2007 5:04 pm
Assunto: Re: Re: Redirecionar erro na tela
mups_cp
Enviar e-mail Enviar e-mail
 
Desta forma funciona:
teste=$(ifconfig ppp0 > /dev/null 2>&1 && echo 1 || echo 0)

$teste será 1 caso exista a interface e 0 caso contrário.

On Nov 7, 2007 2:45 PM, bossonaroesao06 <bossonaroesao06@...> wrote:
>
>
>
>
> Ops..
> Nao deu nao...
> Quando eu redireciono a saida dessa forma, ele nao coloca o valor
> dentro da variavel. Entao sempre que eu for testar a variavel ela vai
> estar vazia ja que a saida do ifconfig foi redirecionada.
>
> Alguem pode ajudar a resolver isso??
> Obrigado
>
>

#24359 De: mups.cp <mups.cp@...>
Data: Qua, 7 de Nov de 2007 3:05 pm
Assunto: Re: Redirecionar erro na tela
mups_cp
Enviar e-mail Enviar e-mail
 
Ao invés de fazer grep direto na saída de ifconfig ppp0, você pode
verificar a resposta do comando primeiro detectando se a interface
existe.
Se a interface existe teste=$(ifconfig ppp0), a variável $teste terá o
valor 0 caso não exista terá o valor 1. Assim fica mais fácil de fazer
o tratamento. Ou algo assim;

ifconfig ppp0 > /dev/null 2>&1 && echo "interface existe" || echo
"interface não existe"


On Nov 7, 2007 12:45 PM, bossonaroesao06 <bossonaroesao06@...> wrote:
>
>
>
>
> Pessoal,
> Estou tentando verificar a existência da conexão ppp0 através do
> ifconfig e até funnciona certinho. O problema é que quando não
> existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar
> isso?
>
> Script:
> #!/bin/bash
> echo "Verificando a interface ppp0..."
> placappp=$(ifconfig ppp0 | grep "ppp0: erro")
> if [ -z "$placappp" ]; then
> echo "A Interface ppp0 nao existe..."
> else
> echo "A Interface ppp0 existe..."
> fi
>
> Olhem o resultado quando nao existe a ppp0:
>
> #Verificando a interface ppp0...
> #ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao
> encontrado
> #A Interface ppp0 nao existe...
>
> Eu gostaria que ficasse assim:
>
> #Verificando a interface ppp0...
> #A Interface ppp0 nao existe...
>
> Alguem me ajuda?
> Obrigado
>
>

#24360 De: miranda <miranda@...>
Data: Qua, 7 de Nov de 2007 6:44 pm
Assunto: Re: Ler Linhas do Arquivo
townscream
Enviar e-mail Enviar e-mail
 
mas abandonando a idéia do for e do laço veja isso :

[miranda@guitar tmp]$ cat xuh
10393039374943 030490 303202 39302
30484030393903 403032 223212 33201
3038947738383 303844 423434 44343
43434343434344 434343 434344 32323
30484030393903 403032 223212 33201
10393039374943 030490 303202 39303
10393039374943 030490 303202 39304
30484030393903 403032 223212 33205
3038947738383 303844 423434 44347
43434343434344 434343 434344 32328
30484030393903 403032 223212 33209
10393039374943 030490 303202 39300


[miranda@guitar tmp]$ cat awk.cmd
NR%2 == 1 {VAR1=$NF}
NR%2 == 0 {VAR2=$NF;printf "VAR1= %d\nVAR2= %d\n",VAR1,VAR2}

[miranda@guitar tmp]$ awk -f awk.cmd xuh
VAR1= 39302
VAR2= 33201
VAR1= 44343
VAR2= 32323
VAR1= 33201
VAR2= 39303
VAR1= 39304
VAR2= 33205
VAR1= 44347
VAR2= 32328
VAR1= 33209
VAR2= 39300


On Wed, 2007-11-07 at 15:32 -0300, miranda wrote:
> se o for lerá linha por linha
> após ler a primeira linha , ou seja , no primeiro laço
> ainda não terá informação da segunda linha .
> Não é meio impossível isso , não ?
> A não ser que possa ler de duas em duas linhas ...
>
> On Wed, 2007-11-07 at 15:14 -0400, Eduardo Lucas wrote:
> > Gurizada!
> > ..tenho um arquivo texto..com o formato abaixo..:
> >
> > 10393039374943 030490 303202 39302
> > 30484030393903 403032 223212 33201
> > 3038947738383 303844 423434 44343
> > 43434343434344 434343 434344 32323
> > 30484030393903 403032 223212 33201
> > 10393039374943 030490 303202 39302
> >
> > preciso fazer um for... que leia linha por linha deste arquivo....
> > preciso que a cada laço do for, tenha a seguinte saida
> >
> > var1= 39302 <- ultima coluna da primeira linha
> > var2= 33201<- ultima coluna da segunda linha
> >
> > no proximo laço seria..:
> >
> > var1= 44343 <- ultima coluna da terceira linha
> > var2= 32323 <- ultima coluna da quarta linha
> >
> > alguma ideia...
> >
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> 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: shell-script-unsubscribe@...
> ---------------------------------------------------------------------
> 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
>
>
>

#24361 De: "Flavio Junior" <billpp@...>
Data: Qua, 7 de Nov de 2007 6:07 pm
Assunto: Re: Ler Linhas do Arquivo
billpp@...
Enviar e-mail Enviar e-mail
 
Uma alternativazinha em Shell...
Mas achei a do awk do Miranda mais bunita:

lazlo:~# cat x
10393039374943 030490 303202 39302
30484030393903 403032 223212 33201
23038947738383 303844 423434 44343
43434343434344 434343 434344 32323
30484030393903 403032 223212 33201
10393039374943 030490 303202 39302
lazlo:~#  LINHA=1; while read A B C VAR; do if [ $(expr $LINHA % 2)
-ne 0  ]; then echo VAR1=$VAR; else echo VAR2=$VAR; fi; let LINHA+=1;
done < x
VAR1=39302
VAR2=33201
VAR1=44343
VAR2=32323
VAR1=33201
VAR2=39302
lazlo:~#


x = nome do arquivo :D

Flávio do Carmo Júnior

On Nov 7, 2007 4:44 PM, miranda <miranda@...> wrote:
> mas abandonando a idéia do for e do laço veja isso :
>
> [miranda@guitar tmp]$ cat xuh
> 10393039374943 030490 303202 39302
> 30484030393903 403032 223212 33201
> 3038947738383 303844 423434 44343
> 43434343434344 434343 434344 32323
> 30484030393903 403032 223212 33201
> 10393039374943 030490 303202 39303
> 10393039374943 030490 303202 39304
> 30484030393903 403032 223212 33205
> 3038947738383 303844 423434 44347
> 43434343434344 434343 434344 32328
> 30484030393903 403032 223212 33209
> 10393039374943 030490 303202 39300
>
>
> [miranda@guitar tmp]$ cat awk.cmd
> NR%2 == 1 {VAR1=$NF}
> NR%2 == 0 {VAR2=$NF;printf "VAR1= %d\nVAR2= %d\n",VAR1,VAR2}
>
> [miranda@guitar tmp]$ awk -f awk.cmd xuh
> VAR1= 39302
> VAR2= 33201
> VAR1= 44343
> VAR2= 32323
> VAR1= 33201
> VAR2= 39303
> VAR1= 39304
> VAR2= 33205
> VAR1= 44347
> VAR2= 32328
> VAR1= 33209
> VAR2= 39300
>
>
>
> On Wed, 2007-11-07 at 15:32 -0300, miranda wrote:
> > se o for lerá linha por linha
> > após ler a primeira linha , ou seja , no primeiro laço
> > ainda não terá informação da segunda linha .
> > Não é meio impossível isso , não ?
> > A não ser que possa ler de duas em duas linhas ...
> >
> > On Wed, 2007-11-07 at 15:14 -0400, Eduardo Lucas wrote:
> > > Gurizada!
> > > ..tenho um arquivo texto..com o formato abaixo..:
> > >
> > > 10393039374943 030490 303202 39302
> > > 30484030393903 403032 223212 33201
> > > 3038947738383 303844 423434 44343
> > > 43434343434344 434343 434344 32323
> > > 30484030393903 403032 223212 33201
> > > 10393039374943 030490 303202 39302
> > >
> > > preciso fazer um for... que leia linha por linha deste arquivo....
> > > preciso que a cada laço do for, tenha a seguinte saida
> > >
> > > var1= 39302 <- ultima coluna da primeira linha
> > > var2= 33201<- ultima coluna da segunda linha
> > >
> > > no proximo laço seria..:
> > >
> > > var1= 44343 <- ultima coluna da terceira linha
> > > var2= 32323 <- ultima coluna da quarta linha
> > >
> > > alguma ideia...
> > >
> > >
> > >
> > >
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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: shell-script-unsubscribe@...
> > ---------------------------------------------------------------------
> > 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
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> 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: shell-script-unsubscribe@...
> ---------------------------------------------------------------------
> 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
>
>
>

#24362 De: "Flavio Junior" <billpp@...>
Data: Qua, 7 de Nov de 2007 6:11 pm
Assunto: Re: Redirecionar erro na tela
billpp@...
Enviar e-mail Enviar e-mail
 
So um parenteses..

teste=$(ifconfig ppp0) não vai te retornar, na variavel teste, o
codigo de saida do comando.
Na verdade, se ppp0 nao existir é vazio, se não é a linha do ifconfig
Veja:

lazlo:~# TESTE=$(ifconfig nada)
nada: error fetching interface information: Device not found
lazlo:~# echo $TESTE

lazlo:~# TESTE=$(ifconfig eth0)
lazlo:~# echo $TESTE
eth0 Link encap:Ethernet HWaddr 00:11:25:A4:7A:68 inet
addr:192.168.4.4 Bcast:192.168.4.255 Mask:255.255.255.0 inet6 addr:
fe80::211:25ff:fea4:7a68/64 Scope:Link UP BROADCAST RUNNING MULTICAST
MTU:1500 Metric:1 RX packets:429567781 errors:0 dropped:0 overruns:0
frame:0 TX packets:563296397 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 RX bytes:154435067752 (143.8 GiB) TX
bytes:560701904150 (522.1 GiB) Interrupt:169
lazlo:~#

lazlo:~# ifconfig nada
nada: error fetching interface information: Device not found
lazlo:~# TESTE=$?
lazlo:~# echo $TESTE
1
lazlo:~#


Espero ter explicado...

Flávio do Carmo Junior

On Nov 7, 2007 1:05 PM, mups. cp <mups.cp@...> wrote:
>
>
>
>
>
>
> Ao invés de fazer grep direto na saída de ifconfig ppp0, você pode
>  verificar a resposta do comando primeiro detectando se a interface
>  existe.
>  Se a interface existe teste=$(ifconfig ppp0), a variável $teste terá o
>  valor 0 caso não exista terá o valor 1. Assim fica mais fácil de fazer
>  o tratamento. Ou algo assim;
>
>  ifconfig ppp0 > /dev/null 2>&1 && echo "interface existe" || echo
>  "interface não existe"
>
>  On Nov 7, 2007 12:45 PM, bossonaroesao06 <bossonaroesao06@...>
> wrote:
>  >
>  >
>  >
>  >
>  > Pessoal,
>  > Estou tentando verificar a existência da conexão ppp0 através do
>  > ifconfig e até funnciona certinho. O problema é que quando não
>  > existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar
>  > isso?
>  >
>  > Script:
>  > #!/bin/bash
>  > echo "Verificando a interface ppp0..."
>  > placappp=$(ifconfig ppp0 | grep "ppp0: erro")
>  > if [ -z "$placappp" ]; then
>  > echo "A Interface ppp0 nao existe..."
>  > else
>  > echo "A Interface ppp0 existe..."
>  > fi
>  >
>  > Olhem o resultado quando nao existe a ppp0:
>  >
>  > #Verificando a interface ppp0...
>  > #ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao
>  > encontrado
>  > #A Interface ppp0 nao existe...
>  >
>  > Eu gostaria que ficasse assim:
>  >
>  > #Verificando a interface ppp0...
>  > #A Interface ppp0 nao existe...
>  >
>  > Alguem me ajuda?
>  > Obrigado
>  >
>  >
>
>
>

#24363 De: mups.cp <mups.cp@...>
Data: Qua, 7 de Nov de 2007 6:16 pm
Assunto: Re: Redirecionar erro na tela
mups_cp
Enviar e-mail Enviar e-mail
 
Sim, você está correto, foi um erro meu.
Enviei um email em seguinta corrigindo o exemplo.


On Nov 7, 2007 4:11 PM, Flavio Junior <billpp@...> wrote:
>
>
>
>
> So um parenteses..
>
> teste=$(ifconfig ppp0) não vai te retornar, na variavel teste, o
> codigo de saida do comando.
> Na verdade, se ppp0 nao existir é vazio, se não é a linha do ifconfig
> Veja:
>
> lazlo:~# TESTE=$(ifconfig nada)
> nada: error fetching interface information: Device not found
> lazlo:~# echo $TESTE
>
> lazlo:~# TESTE=$(ifconfig eth0)
> lazlo:~# echo $TESTE
> eth0 Link encap:Ethernet HWaddr 00:11:25:A4:7A:68 inet
> addr:192.168.4.4 Bcast:192.168.4.255 Mask:255.255.255.0 inet6 addr:
> fe80::211:25ff:fea4:7a68/64 Scope:Link UP BROADCAST RUNNING MULTICAST
> MTU:1500 Metric:1 RX packets:429567781 errors:0 dropped:0 overruns:0
> frame:0 TX packets:563296397 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:1000 RX bytes:154435067752 (143.8 GiB) TX
> bytes:560701904150 (522.1 GiB) Interrupt:169
> lazlo:~#
>
> lazlo:~# ifconfig nada
> nada: error fetching interface information: Device not found
> lazlo:~# TESTE=$?
> lazlo:~# echo $TESTE
> 1
> lazlo:~#
>
> Espero ter explicado...
>
> Flávio do Carmo Junior
>
>
>
> On Nov 7, 2007 1:05 PM, mups. cp <mups.cp@...> wrote:
> >
> >
> >
> >
> >
> >
> > Ao invés de fazer grep direto na saída de ifconfig ppp0, você pode
> > verificar a resposta do comando primeiro detectando se a interface
> > existe.
> > Se a interface existe teste=$(ifconfig ppp0), a variável $teste terá o
> > valor 0 caso não exista terá o valor 1. Assim fica mais fácil de fazer
> > o tratamento. Ou algo assim;
> >
> > ifconfig ppp0 > /dev/null 2>&1 && echo "interface existe" || echo
> > "interface não existe"
> >
> > On Nov 7, 2007 12:45 PM, bossonaroesao06 <bossonaroesao06@...>
> > wrote:
> > >
> > >
> > >
> > >
> > > Pessoal,
> > > Estou tentando verificar a existência da conexão ppp0 através do
> > > ifconfig e até funnciona certinho. O problema é que quando não
> > > existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar
> > > isso?
> > >
> > > Script:
> > > #!/bin/bash
> > > echo "Verificando a interface ppp0..."
> > > placappp=$(ifconfig ppp0 | grep "ppp0: erro")
> > > if [ -z "$placappp" ]; then
> > > echo "A Interface ppp0 nao existe..."
> > > else
> > > echo "A Interface ppp0 existe..."
> > > fi
> > >
> > > Olhem o resultado quando nao existe a ppp0:
> > >
> > > #Verificando a interface ppp0...
> > > #ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao
> > > encontrado
> > > #A Interface ppp0 nao existe...
> > >
> > > Eu gostaria que ficasse assim:
> > >
> > > #Verificando a interface ppp0...
> > > #A Interface ppp0 nao existe...
> > >
> > > Alguem me ajuda?
> > > Obrigado
> > >
> > >
> >
> >
> >
>
>
>

#24364 De: "Tiago Barcellos Peczenyj" <tiago.peczenyj@...>
Data: Qua, 7 de Nov de 2007 6:23 pm
Assunto: Re: Ler Linhas do Arquivo
grande_uosh
Enviar e-mail Enviar e-mail
 
IMHO vc deveria fazer este loop em awk

$ cat data
10393039374943 030490 303202 39302
30484030393903 403032 223212 33201
3038947738383 303844 423434 44343
43434343434344 434343 434344 32323
30484030393903 403032 223212 33201
10393039374943 030490 303202 39302

$ awk 'NR % 2 ==1{ var[1] = $NF ; next }
       {   var[2]=$NF ; print "var[1]=",var[1], ", var[2]=",var[2]   }' data
var[1]= 39302 , var[2]= 33201
var[1]= 44343 , var[2]= 32323
var[1]= 33201 , var[2]= 39302

[]´s T

On 11/7/07, Eduardo Lucas <eduardo.lucas@...> wrote:
>
> Gurizada!
> ..tenho um arquivo texto..com o formato abaixo..:
>
> 10393039374943 030490 303202 39302
> 30484030393903 403032 223212 33201
> 3038947738383 303844 423434 44343
> 43434343434344 434343 434344 32323
> 30484030393903 403032 223212 33201
> 10393039374943 030490 303202 39302
>
> preciso fazer um for... que leia linha por linha deste arquivo....
> preciso que a cada laço do for, tenha a seguinte saida
>
> var1= 39302 <- ultima coluna da primeira linha
> var2= 33201<- ultima coluna da segunda linha
>
> no proximo laço seria..:
>
> var1= 44343 <- ultima coluna da terceira linha
> var2= 32323 <- ultima coluna da quarta linha
>
> alguma ideia...
>
>



--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


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

#24365 De: "Tiago Barcellos Peczenyj" <tiago.peczenyj@...>
Data: Qua, 7 de Nov de 2007 7:45 pm
Assunto: Variaveis Variaveis ${${var}}
grande_uosh
Enviar e-mail Enviar e-mail
 
Imaginemos duas variaveis:

  A="alguma mensagem"
  B=A

É facil acessar o conteúdo de cada uma delas:

$ echo $A
alguma mensagem

$ echo $B
A

Agora, e se eu quisesse acessar o valor de uma variavel através do
conteúdo de outra?

  variavel B tem o conteudo A.
  variavel A, por sua vez, tem outro conteudo.

Eu poderia utilizar eval pra conseguir esse comportamento

$ eval echo \$$B
alguma mensagem

ou então utilizar a expansão ${!Variavel}

$ echo ${!B}
alguma mensagem

Funciona no Bash e deveria funcionar o Ksh (ai deveria entrar um tal
de nameref pra ajudar mas não consegui implementar).

fica a dica.
--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"

#24366 De: "mop" <mop2bky4mz5tyjwa8ersp7hrg5u9qn@...>
Data: Qua, 7 de Nov de 2007 11:02 pm
Assunto: Re: Redirecionar erro na tela
mop2bky4mz5tyjwa8ersp7hrg5u9qn@...
Enviar e-mail Enviar e-mail
 
Outro dia precisei achar o primeiro canal disponível em uma hierarquia que
defini. Não lembro bem do código, mas lá tinha algo parecido com:

ifconfig|grep -m1 -A1 ^ppp|tail -n1|tr -s ' ' :|cut -d: -f4

que definiria, com porta e ip, uma ação sobre o firewall de um portátil.

Parece que você não quer o ip, nem testar se existe rota ou resolução de
nomes, então acho que poderia simplificar para:

ifconfig|grep -q -m1 ^ppp&&echo está OK >&2

O que acho que não seria legal é chamar novamente o ifconfig em seguida
para pegar algo que poderia ter sido obtido em um único porcesso.
Desculpe se perdi algo na thread, li rapidamente.

Naquilo que fiz talvez tivesse todos esses pipes, pois costumo tratar
variáveis em shell, uma vez que elas chegam a uma única linha. Assim, de
improviso, mandei o ip pelos tubos mesmo. :)

Como li algo sobre saída em stderr também, veja se não quer algo como
ifconfig ^pp 2>/dev/null


------------------------------------------------------------------
>From: "bossonaroesao06"
>Date: Wed, 07 Nov 2007 16:45:19 -0000
>
>Ops..
>Nao deu nao...
>Quando eu redireciono a saida dessa forma, ele nao coloca o valor
>dentro da variavel. Entao sempre que eu for testar a variavel ela vai
>estar vazia ja que a saida do ifconfig foi redirecionada.
>
>Alguem pode ajudar a resolver isso??
>Obrigado

#24367 De: "mop" <mop2bky4mz5tyjwa8ersp7hrg5u9qn@...>
Data: Qua, 7 de Nov de 2007 11:40 pm
Assunto: Re: Variaveis Variaveis ${${var}}
mop2bky4mz5tyjwa8ersp7hrg5u9qn@...
Enviar e-mail Enviar e-mail
 
Opa Tiago,
não uso esse shell, mas ao velho estilo São Tomé resolvi ver o que
a versão pré-jurássica que tenho aqui faria.

web@k7/tmp$ ksh
[033]0;u@h:w007]u@hw$ PS1=??$PWD/??
??/tmp/??A="alguma mensagem"
??/tmp/??B=A
??/tmp/??eval echo \$$B
alguma mensagem
??/tmp/??$0 --version
   version         sh (AT&T Labs Research) 1993-12-28 o+
??/tmp/??ls -l $0
ls: cannot access ksh: No such file or directory
??/tmp/??ls -l `which $0`
-rwxr-xr-x 1 root bin 865756 2004-02-15 05:58 /bin/ksh
??/tmp/??exit
web@k7/tmp$

Como não uso esse shell, apenas acabei de checar o slack current.
=====ksh93-2007_03_28-i486-2 in slackware/ap
Meu ksh :) está atualizado!

Não sei se este relato acrescenta algo, mas detalhei como pude.




------------------------------------------------------------------
>From: "Tiago Barcellos Peczenyj"
>Date: Wed, 7 Nov 2007 17:45:00 -0200
>
>Imaginemos duas variaveis:
>
>A="alguma mensagem"
>B=A
>
>É facil acessar o conteúdo de cada uma delas:
>
>$ echo $A
>alguma mensagem
>
>$ echo $B
>A
>
>Agora, e se eu quisesse acessar o valor de uma variavel através do
>conteúdo de outra?
>
>variavel B tem o conteudo A.
>variavel A, por sua vez, tem outro conteudo.
>
>Eu poderia utilizar eval pra conseguir esse comportamento
>
>$ eval echo \$$B
>alguma mensagem
>
>ou então utilizar a expansão ${!Variavel}
>
>$ echo ${!B}
>alguma mensagem
>
>Funciona no Bash e deveria funcionar o Ksh (ai deveria entrar um tal
>de nameref pra ajudar mas não consegui implementar).
>
>fica a dica.
>--
>Tiago B Peczenyj
>Linux User #405772
>
>http://peczenyj.blogspot.com/
>"what does not kill us makes us stronger"

#24368 De: "mop" <mop2bky4mz5tyjwa8ersp7hrg5u9qn@...>
Data: Qui, 8 de Nov de 2007 12:20 am
Assunto: Re: Variaveis Variaveis ${${var}}
mop2bky4mz5tyjwa8ersp7hrg5u9qn@...
Enviar e-mail Enviar e-mail
 
Minha resposta anterior estava parcialmente incorreta.
O repósitorio local está atualizado, mas o pacote instalado não era o último.
Deve ser um bem antigo, nem esta na lista de pacotes instalados.
Como disse eu não o uso, scripts configure ou make, sei lá...
Bem, descompactei o último no diretório abaixo e rodei desse ponto, sem
instalar, é só um tar x... :)

web@k7/tmp/test$ ls -l
total 12
drwxr-xr-x 2 web ppp 4096 2007-04-15 20:32 bin/
drwxr-xr-x 2 web ppp 4096 2007-04-15 20:32 install/
drwxr-xr-x 5 web ppp 4096 2007-04-15 20:32 usr/
web@k7/tmp/test$ ls -ld bin/*
-rwxr-xr-x 1 web ppp 977876 2007-04-15 20:32 bin/ksh.new*
web@k7/tmp/test$ md5sum bin/*
8caae608a57ccff2dcea53946c8518ca  bin/ksh.new
web@k7/tmp/test$ bin/*
[033]0;u@h:w007]u@hw$ PS1=':) '
:) A="alguma mensagem"
:) B=A
:) eval echo \$$B
alguma mensagem
:) echo $0
bin/ksh.new
:) echo $PWD
/tmp/test
:) $0 --version
   version         sh (AT&T Research) 1993-12-28 s+
:) exit
web@k7/tmp/test$


-----------
Desculpem a ~dupla postagem, mas tinha de reparar a minha falha!

#24369 De: "gleissonmb" <gleisson@...>
Data: Qui, 8 de Nov de 2007 11:15 am
Assunto: Apagar arquivo
gleissonmb
Enviar e-mail Enviar e-mail
 
Segue exemplo:

# rm -rf -fire.gmb
rm: opção inválida -- e
Tente `rm --help' para mais informação.

Como apagar um arquivo com um "-" (menos) como primeiro caracter?

#24370 De: "Eduardo de Paula" <eduardo.paula@...>
Data: Qui, 8 de Nov de 2007 11:29 am
Assunto: Re: Apagar arquivo
eduardo_paula
Enviar e-mail Enviar e-mail
 
rm -rf ./-fire.gmb

Inté

On Nov 8, 2007 9:15 AM, gleissonmb <gleisson@...> wrote:

>
> Segue exemplo:
>
> # rm -rf -fire.gmb
> rm: opção inválida -- e
> Tente `rm --help' para mais informação.
>
> Como apagar um arquivo com um "-" (menos) como primeiro caracter?
>
>
>



--
"Os erros podem ser transformados em acertos quando com eles se aprende. Não
existe a segurança do acerto eterno."


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

#24371 De: "Carlos Ferreira" <chlferreira@...>
Data: Qui, 8 de Nov de 2007 11:33 am
Assunto: Re: Apagar arquivo
chlferreira
Enviar e-mail Enviar e-mail
 
$rm -- -fire.gmb
-- dois traços seguidos

[]s

Carlos Ferreira

Em 08/11/07, gleissonmb <gleisson@...> escreveu:
>
>
> Segue exemplo:
>
> # rm -rf -fire.gmb
> rm: opção inválida -- e
> Tente `rm --help' para mais informação.
>
> Como apagar um arquivo com um "-" (menos) como primeiro caracter?
>
>
>



--
Carlos Ferreira
Analista de Desenvolvimento
Niterói - RJ - Brasil
LinuxUser  #271002
http://www.carnivorosemdentes.blogger.com.br/
================


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

#24372 De: "Tiago Barcellos Peczenyj" <tiago.peczenyj@...>
Data: Qui, 8 de Nov de 2007 11:56 am
Assunto: Re: Apagar arquivo
grande_uosh
Enviar e-mail Enviar e-mail
 
Apenas um comentário.

Boa parte dos programas *nix utilizam variações de uma biblioteca
chamada getopts para pegar as opções de linha de comando. É esta que
permite fazer coisas do tipo

ls -la

e o ls 'entende' que tu estás passando as opções -l e -a, sem falar
que a ordem onde aparecem nem sempre importa. Como podemos querer
passar algum argumento que não deva ser interpretado pelo getopts,
como no caso de arquivos que começam com - , existe a solução -- que
diz "getopts, a partir daqui tu não lê mais".

On 11/8/07, Carlos Ferreira <chlferreira@...> wrote:
>
> $rm -- -fire.gmb
>  -- dois traços seguidos
>
>  []s
>
>  Carlos Ferreira
>
>  Em 08/11/07, gleissonmb <gleisson@...> escreveu:
>  >
>  >
>  > Segue exemplo:
>  >
>  > # rm -rf -fire.gmb
>  > rm: opção inválida -- e
>  > Tente `rm --help' para mais informação.
>  >
>  > Como apagar um arquivo com um "-" (menos) como primeiro caracter?

--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"

#24373 De: "William José Vicente" <williamvicente@...>
Data: Qui, 8 de Nov de 2007 11:59 am
Assunto: Re: Re: Expressões regulares usando SED (novo problema)
williamjosev...
Enviar e-mail Enviar e-mail
 
Miguel,

    estou um pouco atrasado :-), mas sobre o problema do SED, eu acho que se
você fizer uma pequena alteração na primeira parte (expressão), pode usar o
SED como o Tiago tinha indicado. Veja abaixo:

    Você está usando:
      verify=$(mount | sed -n '/ on \/ /{s/ on \/ .*//;p}')

    Acho que você poderia usar:
      verify=$(mount | sed -n '/ on \/ .*/{s/ on \/ .*//;p}')

    A diferença foi utilizar o .* na primeira parte (expressão).
    Então daria para simplificar (como o Tiago indicou anteriormente), veja:
       verify=$(mount | sed -n '/ on \/ .*/{s///;p}')

    Eu não testei, mas acredito que funcione. :-)

Abraços,

    William




Em 06/11/07, Tiago Barcellos Peczenyj <tiago.peczenyj@...> escreveu:
>
>   Miguel, o -eq é para comparações numéricas.
>
> $ id=043fecd0
>
> $ outro_id=043fecd0
>
> $ [[ $id = $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
> sao iguais
>
> $ outro_id=043fecd1
>
> $ [[ $id = $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
> sao diferentes
>
> $ [[ $id -eq $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
> bash: [[: 043fecd0: value too great for base (error token is "043fecd0")
> sao diferentes
>
> use o operador = nesse caso ;-)
> On Nov 6, 2007 3:33 PM, miguelcm86
<miguelcm86@...<miguelcm86%40yahoo.com.br>>
> wrote:
> >
> > Boas...
> >
> > Bem isto está quase lá, estou agora a ter problemas na comparação das
> > strings UUID. Talvez porque são strings complexas do tipo:
> > hj34-jk323-3j3k23m-23nk32.....
> >
> > estou a fazer assim:
> > primeiro recebo a string do disco:
> > ## Inserir na variável id a identificação da partição '/':
> >
> >
> > verify=$(mount | sed -n '/ on \/ /{s/ on \/ .*//;p}')
> > id=$(sudo vol_id $verify | sed -n '/ID_FS_UUID=/{s///;p}')
> >
> > está a inserir em id a string certa!!
> >
> > depois leio a srting que está guardado no ficheiro report:
> >
> > id_file=$(sed -n '/ID_FS_UUID=/{s///;p}' report)
> >
> > agora testo se é igual, se não for, aviso ao usuário e meto state=0:
> >
> > [[ "$id_file" -eq "$id" ]] || echo "id não corresponde" && state="0"
> >
> > o erro que me dá na hora de verificação é este:
> >
> > ./choicet.sh: line 35: [[: 043fecd0: valor muito grande para a base
> > (error token is "043fecd0")
> >
> > Alguém sabe onde estou a errar, já agora expliquem o problema ;)
> >
> > Obrigado pessoal por tudo
> >
> >
> >
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
> "what does not kill us makes us stronger"
>
>


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

#24374 De: Douglas Brito Damalio <ddamalio@...>
Data: Qui, 8 de Nov de 2007 2:53 pm
Assunto: Contar string de uma variável
ddamalio
Enviar e-mail Enviar e-mail
 
Pessoal como posso contar a string de uma variável???

o que preciso fazer é isso:

tam=<numero de strings da variavel>

se tam menor <= x
entao
     ....
fim do fi

Ass.: Douglas Brito Damalio





       Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail.yahoo.com/

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

#24375 De: "Tiago Barcellos Peczenyj" <tiago.peczenyj@...>
Data: Qui, 8 de Nov de 2007 3:03 pm
Assunto: Re: Contar string de uma variável
grande_uosh
Enviar e-mail Enviar e-mail
 
Vc pode utilizar a expansão ${#variavel}

Imagine uma variavel chamada STRING

$ echo "${STRING}"
Aprov: 38% de aprovacao
$ echo "${#STRING}"
23

$ if [[ ${#STRING} -le 40 ]]; then
          echo 'tamanho <= 40'
else
          echo 'tamanho > 40'
fi

tamanho <= 40


[]´s T.
On 11/8/07, Douglas Brito Damalio <ddamalio@...> wrote:
>
>   Pessoal como posso contar a string de uma variável???
>
> o que preciso fazer é isso:
>
> tam=<numero de strings da variavel>
>
> se tam menor <= x
> entao
> ....
> fim do fi
>
> Ass.: Douglas Brito Damalio
>
> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
> http://br.mail.yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>



--
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


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

mensagens 24346 - 24375 de 36015   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
mensagens 24346 - 24375 de 36015   Mais antigos  |  < Mais antigos  |  Mais recentes >  |  Mais recentes
Avançado

Copyright © 2010 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda