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

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

Re: [shell-script] bash + expect, dificuldade para obter variável


From: Alexsandro Felix
Subject: Re: [shell-script] bash + expect, dificuldade para obter variável
Date: Wed, 23 Feb 2011 14:13:46 -0300

Muito obrigado pela idéia Celo.

Consegui da seguinte forma:

#!/bin/bash


> export user=xxxxx

export senhanova=xxxxxxxxxxxx

export senhaoriginal=yyyyyyyyyyy

rbs="000.000.000.000

111.111.111.111"

export porta=222222

for host in $rbs; do

 export host2=$host

 expect -c '

 spawn -noecho ssh $env(user)@$env(host2) -p $env(porta) /user set
> $env(user) password=$env(senhanova);

 expect "ssword:"

 send $env(senhaoriginal)\r

 interact

 '

 done



2011/2/23 celo <address@hidden>

>
>
> Acho que vc errou ao definir a variavel host tipo lista
> como eh uma lista que vai ser usada num for vc define assim
>
> host=(111.1.1.1 222.2.2.2)
>
> e usa $env(${host[@]})
>
> Marcelo S. (TT)
> http://celo.wordpress.com
>
> ________________________________
> From: Alexsandro Felix <address@hidden>
> To: address@hidden
> Sent: Wed, February 23, 2011 10:27:28 AM
> Subject: [shell-script] bash + expect, dificuldade para obter variável
>
>
> Olá.
>
> Estou usando o expect juntamente com o bash para me conectar em um sistema
> e
> executar alguns comandos, neste caso em específico, estou montando um
> script
> para mudar periodicamente as senhas do usuário desejado. No momento tenho o
> seguinte código:
>
> #!/bin/bash
>
> > export user=xxxxxx
>
> export senhaoriginal=xxxxxxxxxxxx
>
> export senhanova=yyyyyyyyyyyy
>
> export rbs="000.000.000.000
>
> 111.111.111.111"
>
> export porta=222222
>
> for host in $rbs;
>
> do expect -c '
>
> spawn -noecho ssh $env(user)@$env(host) -p $env(porta) /user set $env(user)
> > password=$env(senhanova);
>
> expect "ssword:"
>
> send $env(senhaoriginal)\r
>
> interact
>
> '
>
> done
>
> Porém ao executá-lo não consigo passar corretamente a váriável $host
> pegando
> os dados fornecidos em $rbs pelo comando *for*, vejam a mensagem de erro:
>
> $ ./senhas-rbs.sh
>
> no such variable
>
> (read trace on "env(host)")
>
> invoked from within
>
> "spawn -noecho ssh $env(user)@$env(host) -p $env(porta) /user set
> $env(user)
> > password=$env(senhanova)"
>
> no such variable
>
> (read trace on "env(host)")
>
> invoked from within
>
> "spawn -noecho ssh $env(user)@$env(host) -p $env(porta) /user set
> $env(user)
> > password=$env(senhanova)"
>
> Desde já grato pelas sugestões.
>
> Atenciosamente
> Felix
> http://blog.ffelix.eti.br
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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