O comando expect
que você usa:
spawn ssh [email protected] ls > ls_from_remotes_sys
Isso chama efetivamente
exec("ssh","[email protected]","ls",">","ls_from_remotes_sys")
Isso significa que os três parâmetros ( ls
, >
e o nome do arquivo) são enviados para o sistema remoto; ou seja, o redirecionamento acontece no sistema remoto.
Um kludge poderia ser chamado via sh -c "ssh test@...."
.
Outra alternativa seria fazer o redirecionamento fora do script expect
e, g: se você chamou isso de "get_ls"
#!/usr/bin/expect -f
spawn ssh [email protected] ls
expect "[email protected]'s password:"
send "password\r"
interact
Então você pode fazer get_ls > ls_from_remotes_sys
.