Во-первых, ваше цитирование подозрительно: у вас есть двойные кавычки в строке с двойными кавычками. Давайте исправим это и улучшим отступ:
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
Теперь, чтобы разместить приглашение, которое может появиться, а может и не появиться, ожидаем, что вы сделаете это:
expect {
"Are you sure you want to continue connecting*" {
send yes\r
exp_continue
}
"*password:*" {
send $PASSWORD\r
interact
}
}
exp_continue
по существу "зацикливается" обратно на команду expect, чтобы она могла по-прежнему следите за другим запросом «Вы уверены ...» или запросом пароля.