2015-08-05 7 views
1

Как запустить команду оболочки в сценарии ожидания и проверить определенную строку?Ожидать сценария для запуска команды оболочки

#!/usr/bin/expect 

set timeout 20 

send "ps -aef | grep P1" 

expect "string" 

Blah 
Blah 

exit; 

Я попытался с spawn, exec и system командой вместо send, но всегда истек или закончился в какой-то ошибке.

ответ

2

Узор вы spawn программу, expect ее производить некоторый вывод, send это некоторый входной сигнал, (повторить два последних по мере необходимости), и close; wait закончить. Если программа не выводит ожидаемый результат, вы будете ждать, пока она не закончится, или вы получите тайм-аут.

К счастью, вы можете подождать несколько вещей сразу:

spawn ps -aef 
expect { 
    "P1" { ... got it ... } 
    eof { ... not got it ... } 
    timeout { ... ps hung? ... } 
} 
close 
wait 
+0

Спасибо. Я пробовал это с | (труба) и grep. мы не используем | (труба) в системной команде? – Jagan

Смежные вопросы