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

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

Esta é provavelmente uma pergunta fácil, no entanto, tenho um script expect simples ao qual adicionei o bit executável que parece estar ignorando a linha do interpretador #!/usr/bin/expect. Além disso, também parece que as variáveis ​​não estão sendo definidas, pois quando eu as faço eco, elas ficam 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!!

PS: Estou executando o Debian Wheezy, instalado expect via apt-get install expect... obrigado

Responder1

Expect é baseado 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ê obterá resultados como este:

$ ./test.exp
spawn ssh [email protected]
1.1.1.1
testuser

Responder2

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

bash ./testexpect.exp

Isso irá ignorar o "#!" linha. O que quer que esteja iniciando o script precisa apenas nomear o arquivo (ou dizer explicitamente expect ./testexpect.exp). Se seu #! a linha era ruim, você teria conseguido/usr/bin/expect: bad interpreter: ...

informação relacionada