#! / usr / bin / espera não funcionar

1

Esta é provavelmente uma questão fácil, no entanto, temos um simples script de espera que eu adicionei ao bit executável que parece estar ignorando a linha de intérprete #! / usr / bin / expect. Além disso, também parece que as variáveis não estão sendo definidas, pois quando eu as ecoo, elas estão em branco ...

#!/usr/bin/expect -f
set device "1.1.1.1"
set user   "testuser"

spawn ssh $user@$device
echo $device
echo $user

ls -lh
-rwxr-xr-x  root  root    testexpect.exp

Obrigado pela sua comunidade de ajuda!

P.S. Estou executando o Debian Wheezy, instalei espere via apt-get install espero ... obrigado

    
por Jim 16.06.2015 / 19:47

2 respostas

1

A expectativa é baseada na linguagem Tcl, então você não deve usar bash 'echo' - você deve usar 'puts' para imprimir algo na tela:

#!/usr/bin/expect -f
set device "1.1.1.1"
set user   "testuser"
spawn ssh $user@$device
puts $device
puts $user

E você terá resultado assim:

$ ./test.exp
spawn ssh [email protected]
1.1.1.1
testuser
    
por 19.06.2015 / 09:44
0

As mensagens de erro sugerem que você está executando o comando com um intérprete explícito, por exemplo:

bash ./testexpect.exp

Isto irá ignorar o "#!" linha. Qualquer que seja o lançamento, o script precisa apenas nomear o arquivo (ou explicitamente dizer expect ./testexpect.exp ). Se seu #! linha era ruim você teria /usr/bin/expect: bad interpreter: ...

    
por 19.06.2015 / 08:14