Нет ожидаемого результата при стандартном выводе - PullRequest
1 голос
/ 23 сентября 2010

Всякий раз, когда я пытаюсь запустить скрипт, он не показывает никакого результата при стандартном выводе.

#!/usr/bin/expect --
send [exec tail -f /var/opt/jboss/log/jbossall.log | grep -i "pattern"]

Пожалуйста, сообщите причину.

1 Ответ

0 голосов
/ 23 сентября 2010

Команда 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)
}
...