Uso o expect com certa frequência, se quiser te dou uma mão. Pra começar segue um exemplo que usa ssh. Basta trocar no "spawn" pelo comando que quer lançar, que lançará a sessão com a qual quer interagir. Depois é mais uma sequência de envio (send) e resposta (expect). Os '$' não escapados são variáveis do shell. Esse expect tá dentro de um script em shell que faz outras coisas. Você poderia fazer direto um script em expect se quisesse. Em geral faço num shell.
/usr/bin/expect << EOF
set timeout 15
spawn ssh $chave@$maquina
match_max 100000
expect {
"word:" {send -- "$senha\r"}
"enha:" {send -- "$senha\r"}
"yes/no" {
send -- "yes\r"
expect {
"word:" {send -- "$senha\r"}
"enha:" {send -- "$senha\r"}
}
}
}
expect "$ "
send -- "cd /tmp\r"
expect "$ "
send -- "mkdir spacewalk\r"
expect "$ "
send -- "mv -f migracao-16-22-para_expect.sh register_swalk-migra22.conf register_swalk-migra22.sh systemgroup-addSystems-migra22.py $tmpdir\r"
expect "$ "
send -- "cd $tmpdir\r"
expect "$ "
send -- "sudo ./migracao-16-22-para_expect.sh > ${prefixlog}-${maquina}.txt 2>&1\r"
expect {
"assword" {send -- "$senha\r"}
"enha" {send -- "$senha\r"}
}
expect "$ "
send -- "exit\r"
expect eof
EOF
Abs,
- netcat/telnet - conexão persistente, Fernando Mercês, 2015/02/12
- Re: [shell-script] netcat/telnet - conexão persistente, Ernander (Nander), 2015/02/12
- Re: [shell-script] netcat/telnet - conexão persistente, Julio C. Neves, 2015/02/12
- Re: [Bulk] Re: [shell-script] netcat/telnet - conexão persistente, Sidney Souza, 2015/02/12
- Re: [Bulk] Re: [shell-script] netcat/telnet - conexão persistente, Julio C. Neves, 2015/02/13
- Re: [Bulk] Re: [shell-script] netcat/telnet - conexão persistente, Fernando Mercês, 2015/02/14
- Re: [Bulk] Re: [shell-script] netcat/telnet - conexão persistente, Ronaldo Ferreira de Lima, 2015/02/14
- Re: [Bulk] Re: [Bulk] Re: [shell-script] netcat/telnet - conexão persistente, Sidney Souza, 2015/02/14
Re: [shell-script] netcat/telnet - conexão persistente, Ronaldo Ferreira de Lima, 2015/02/12