Команда exec
никогда не завершается, потому что вы используете tail -f
.На информационной странице для tail: « Loop forever пытается прочитать больше символов в конце файла».Поскольку exec
не завершается, send
никогда не вызывается.
Возможно, вам нужно сделать что-то вроде этого:
spawn whatever
set whatever_id $spawn_id
spawn sh -c {tail -f /var/opt/jboss/log/jbossall.log | grep -i "pattern"}
set tail_id $spawn_id
while {1} {
expect -i $tail_id "(.*)\n"
send -i $whatever_id $expect_out(1,string)
}