Calling Expect Script From a Perl Program, the perl program works fine when executed in foreground (i.e on command line) but its does not working in back ground (i.e schedule in a cron)..but if I call the same expect script from a shell program it works both in back ground and foreground. Your help is appreciated
Remote_ftp.exp #!/usr/local/bin/expect -f set force_conservative 0 ;# set to 1 to force conservative mode even if ;# script wasn't run conservatively originally if {$force_conservative} { set send_slow {1 .1} proc send {ignore arg} { sleep .1 exp_send -s -- $arg } } set timeout -1 set rem_host [lindex $argv 0] set rem_user [lindex $argv 1] set rem_pswd [lindex $argv 2] set lcal_file [lindex $argv 3] set rem_file [lindex $argv 4] spawn $env(SHELL) match_max 100000 expect "> " send -- "ftp $rem_host\r" expect "Name *: " send -- "$rem_user\r" expect "Password: " send -- "$rem_pswd\r" expect "ftp> " send -- "bin\r" expect "ftp> " send -- "send $lcal_file $rem_file\r" expect "ftp> " send -- "bye\r" expect "> " send -- "exit\r" expect eof Remote_ftp.pl #!/usr/local/bin/perl localFILE='/tmp/test99'; remFILE='/tmp/test99'; $command="/export/home/scripts/remote_ftp.exp server1 user1 mypwd $localFILE $remFILE"; $output = `$command`; print $output Remote_ftp.sh #!/usr/bin/ksh /export/home/perl/remote_ftp.pl