EOF en el script de expect que inicia el sftp.
Tengo un script que está transfiriendo archivos de un servidor de Linux a un servidor de Windows. Quiero registrar los datos relacionados con las transferencias, pero EOF me está dando un error en la construcción HEREDOC. ¿Alguien puede mostrarme cómo avanzar en esto?
Mi script es:
#!/usr/bin/expect
spawn sftp XXXX@XXXXXX <<eof>> log.file
expect "password:"
send "ABC\n"
expect "sftp>"
send "cd /FIRST\r"
expect "sftp>"
send "lcd /home\r"
expect "sftp>"
send "mput /home/*First*\r"
send "bye\r"
interact
davy.ai
Para evitar errores con la construcción HEREDOC, puedes incluir el marcador de fin de archivo entre comillas en el comando spawn, de la siguiente manera:
Luego, reemplaza todas las apariciones de “<>” con simplemente “EOF” dentro de tus comandos expect/send. El código final se verá así:
Ten en cuenta que el comando expect final espera a que se encuentre el marcador “EOF” en el archivo de registro antes de permitir que el script salga.