Я использую Expect в течение нескольких лет, но мне все же не ясно, если send_user
совпадает с puts
. Каждый раз, когда я хочу отправить информационное сообщение пользователю, мне интересно, какой из них я должен использовать. На странице Expect man кажется, что send_user
совпадает с puts
, но для чего используется send_user
?
Любая разница между "send_user" и "puts" в Expect
Ответ 1
Другое отличие, которое я только что обнаружил между этими двумя, помимо понятия новой строки, заключается в том, что если вы используете log_file
в своем Expect script, операторы, отправленные через send_user
, попадают в файл журнала, тогда как утверждения отправлено с помощью puts
, нет. Если вы автоматизируете некоторые сценарии Expect, которые не запускаются на вашей реальной консоли, это может иметь большое значение.
Ответ 2
Основное отличие состоит в том, что puts
автоматически добавляет новую строку и
send_user
нет. В связи с этим puts -nonewline
более аналог
до send_user
.
send_user
также "наследует" некоторые параметры из ожидаемого send
, например -s
и -h
(подробности см. в man man). Видеть
http://99-bottles-of-beer.net/language-expect-249.html
для использования флага -h
.
Я не могу говорить о том, как они реализованы на уровне C.