Login chat
Выше мы уже сталкивались со скриптом входа в систему (login chat script), который сообщает uucico, как регистрироваться в удаленной системе. Он состоит из списка лексем, определяя строки, ожидаемые и посланные локальным процессом uucico. Проблема состоит в том, чтобы заставить uucico ждать, пока удаленная машина не пошлет приглашение входа в систему, затем послать имя входа в систему, ждать, пока удаленная система пошлет приглашение на ввод пароля, и посылать пароль. Ожидание и посылка строки чередуются. uucico автоматически добавляет символ возврата каретки (\r) к любой посылаемой строке. Таким образом, простой скрипт похож на:
ogin: vstout ssword: catch22
login chat
Выше мы уже сталкивались со скриптом входа в систему (login chat script), который сообщает uucico, как регистрироваться в удаленной системе. Он состоит из списка лексем, определяя строки, ожидаемые и посланные локальным процессом uucico. Проблема состоит в том, чтобы заставить uucico ждать, пока удаленная машина не пошлет приглашение входа в систему, затем послать имя входа в систему, ждать, пока удаленная система пошлет приглашение на ввод пароля, и посылать пароль. Ожидание и посылка строки чередуются. uucico автоматически добавляет символ возврата каретки (\r) к любой посылаемой строке. Таким образом, простой скрипт похож на:
ogin: vstout ssword: catch22
Обратите внимание, что поля записи не содержат текста приглашений. Удостоерьтесь, что вы войдете в систему , даже если система посылает Login: вместо login:.
uucico также учитывает некоторые виды условного выполнения, например, в случае, если getty удаленной машины должен быть сброшен перед посылкой приглашения. Для этого Вы можете присоединить под-дружескую (sub-chat) беседу к ожидающейся строке. Sub-chat выполняется только, если основное соединение не удалось, то есть произошла блокировка по времени. Один из способов использовать эту возможность состоит в том, чтобы послать BREAK, если удаленная система не отображает приглашение входа в систему. Следующий пример дает всесторонний скрипт дружеской беседы, который должен работать и в случае, если Вы должны нажать Enter прежде, чем войти в систему. Пустая строка ("") говорит UUCP ничего не ждать и продолжать посылать следующую строку немедленно.
"" \n\r\d\r\n\c ogin:-BREAK-ogin: vstout ssword: catch22
Имеется несколько специальных строк и ESC-символов, которые могут включаться в скрипт:
""
Пустая строка сообщает, чтобы uucico не ждал ничего, а продолжил посылать следующую.
\t
Табуляция.
\r
Перевод каретки.
\s
Пробел. Вы нуждаетесь в нем, чтобы включить пробел в строку регистрации в скрипте.
\n
Перевод строки. В unix-системах понятия перевода (возврата) каретки и перевода строки разделены в отличие от DOS/Windows-систем.
\\
Обратный слэш (\).
В посылаемой строке в дополнение к вышеупомянутым допустимы следующие ESC-символы и последовательности:
EOT
Конец передачи (^D).
BREAK
Прерывание (Break).
\c
Возврат каретки в конце строки.
\d
Пауза в 1 секунду.
\E
Дает возможность эхо-проверки. Эхом (ECHO) называется возвращение копии всей переданной информации для контроля. Этот режим требует, чтобы uucico дождался ECHO всего, что он передает прежде, чем сможет продолжать регистрацию. Это удобно, когда используется в скриптах модема (с которыми мы столкнемся ниже). По умолчанию эхо выключено.
\e
Выключить эхо-контроль.
\K
Аналогично BREAK.
\p
Пауза на половину секунды.