Ожидайте: как напечатать каждый вывод порожденного процесса пользователю - PullRequest
2 голосов
/ 18 августа 2011

Я пытаюсь написать ожидаемый скрипт, часть команд будет выполнена от имени другого пользователя.Поэтому мне нужно создать процесс kuu, а затем отправлять ему команды после того, как пользователь предоставил пароль.Но как мне собрать выходные данные этих команд и распечатать их для пользователя, который запускает ожидаемые сценарии?

1 Ответ

2 голосов
/ 19 августа 2011

Это можно сделать, используя что-то вроде следующего:

proc outputUntilPrompt {} {   
    global expect_out
    set prompt "ACT:*>*"
    set output ""                

    while 1 {        
        expect {
            -re "(\[^\r]*\)\r\n" {
                append output $expect_out(buffer)
            }
            $prompt {
                append output $expect_out(buffer)
                break
            }
        }
    }
    return $output
}

send_user "$output"
...