Любая разница между "send_user" и "puts" в Expect - программирование
Подтвердить что ты не робот

Любая разница между "send_user" и "puts" в Expect

Я использую Expect в течение нескольких лет, но мне все же не ясно, если send_user совпадает с puts. Каждый раз, когда я хочу отправить информационное сообщение пользователю, мне интересно, какой из них я должен использовать. На странице Expect man кажется, что send_user совпадает с puts, но для чего используется send_user?

4b9b3361

Ответ 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.