В моем ожидаемом сценарии следующий пример кода доставляет мне много хлопот
#!/usr/bin/expect
#some other code
set psucommand "psu |grep -v grep | grep $jobname\r"
#some other code
expect "env[lindex $argv 0]>" {send $psucommand}
expect {
"$jobname" {
send_user "$jobname"
send "exit\r"}
"env[lindex $argv 0]>" {
send_user ""
send "exit\r"}
}
Это второе ожидание пытается (успешно) соответствовать действительной команде $ psucommand (psu | grep -v grep |grep ACTUALJOBNAME \ r) Я отправляю в порожденный процесс, и мне нужно сопоставить только вывод порожденного процесса.
Вот что я вижу в конце, когда я запускаю этот скрипт с ожидаемым -d
expect: does " psu |grep -v grep | grep ACTUALJOBNAME\r\n" (spawn_id exp6) match glob pattern "ACTUALJOBNAME"? yes
Это соответствует моей команде, которую я отправил в порожденный процесс.Мне нужно этого избегать.
Помощь!