Я пытаюсь вызвать сценарий оболочки и сохранить результат в переменной ожидания. get_pw.sh принимает 2 аргумента и расшифровывает файл, используя предоставленный md5hash. Если я выполнил ./get_pw.sh file.test md5hash из приглашения bash, он вернет строку пароля, как ожидалось. При вызове от ожидания пароль не возвращается. Ожидают отладки шоу:Ожидайте сценарий оболочки вызова
expect: does "" (spawn_id exp0) match regular expression "[^\s]"?
Так это выглядит как сценарий не возвращает строку пароля при вызове из ожидать. Соответствующий код:
#!/usr/bin/expect
send "./get_pw.sh file.test md5hash \r"
expect -re {[^\s]} {
set password $expect_out(0,string)
}
puts "The password is: $password"
Что вы отправляете этой командной строке? Получает ли 'get_pw.sh' вывод на стандартный вывод или стандартную ошибку или tty напрямую? –
get_pw.sh выводит на стандартный вывод. Ожидать отладки показывает это при отправке команды 'отправить: отправка«./get_pw.sh file.test md5hash \ г»в exp0 ./get_pw.sh file.test md5hash' – Polyamorous
Вы автоматизации оболочки здесь является Предполагается, что эта команда выполняется, или вы пытаетесь запустить 'get_pw.sh' в качестве локальной команды (через локальную оболочку)? Если последние видят ответ Йенса. –