Primeiro, sua citação é suspeita: você tem aspas duplas em uma string entre aspas duplas. Vamos consertar isso e melhorar o recuo:
for HOST in $HOSTS; do
expect -c <<END_EXPECT
spawn /usr/bin/scp /tmp/ranfull ranhalf midran root@$HOST:/tmp/
expect {
"*password:*" {
send $PASSWORD\r
interact
}
}
exit
END_EXPECT
done
Agora, para acomodar um aviso que pode ou não aparecer, espere que você faça isso:
expect {
"Are you sure you want to continue connecting*" {
send yes\r
exp_continue
}
"*password:*" {
send $PASSWORD\r
interact
}
}
exp_continue
essencialmente "faz um loop" de volta ao comando expect para que ele ainda possa assistir a outro prompt "Tem certeza ..." ou o prompt de senha.