виконання команд.
Завершальні команди виконуються після входу в віддалену систему : default - встановлює маршрут по замовчуванню на всі хости на це з'єднання та mode що встановлює режим SLIP на лінії та конфігурує інтерфейс та таблицю маршрутів.
8.3.2 Опис dip
Не дивлячись на широке застосування dip не є добре документованим. В цій секції ми дамо короткий опис більшості команд dip. Ви можете проглянути список всіх команд що підтримуються - запустіть dip в тестовому режимі та викличте допомогу командою help. Для того щоб зрозуміти синтаксис будь-якої команди введіть її без аргументів; відповідно команди що не потребують аргументів не видадуть короткої допомоги .
$ dip -t
DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
Written Fred N. van Kempen, MicroWalt Corporation.
DIP> help
DIP knows about following commands:
databits default dial echo flush
get goto help if init
mode modem parity print port
reset send sleep speed stopbits
term wait
DIP> echo
Usage: echo on|off
DIP>
Всі наступні приклади відображають DIP> як запрошення ввести команду в тестовому режимі, та реакцію програми. Приклади в яких немає цього запрошення є скриптами.
8.3.2.1 Команди управління модемом
Існує кілька команд що дозволяють конфігурувати вашу послідовну лінію та модем. Деякі з них - явні, типу port, який вибирає послідовний порт, а також speed, databits, stopbits та parity, які встановлюють параметри лінії.
Команда modem вибирає тип модема. На зараз підримується тільки HAYES (тільки великикими літерами). Ви повинні потурбуватись про сумісність dip з модемом, в іншому випадку можуть не виконуватись команди dial та reset. Команда reset посилає команду переініціалізації модема що залежить від типу модема. Для Hayes-сумісних модемів це ATZ.
Команда flush очищує потік відповідей (responses) модема. В іншому випадку сценарій з'єднання може мпрацювати неправильно, так як він прочитає відповіді модема OK що залишились від попередніх команд.
Команда init описує ініціалізаційну стрічку що буде послана в модем перед набиранням номера. По замовчуванню для Hayes модемів - ``ATE0Q0V1X1'', яка включає режим луни (echo), довгий результатний код та вибирає blind dialing (не перевіряти несучу).
Команда dial посилає ініціалізаційну стрічку для модему та дзвонить на віддалену систему. По замовчування команда dial для Hayes модемів - ATD.
8.3.2.2 echo і term
Команда echo вікористовується для відладки, вона виводить на консоль dip все що посилається на послідовний пристрій. Виключається викликом команди echo off.
dip також дозволяє вийти з режиму скрипта і тимчасово перейти в термінальний режим. Ви можете використовувати dip подібно до будь-якої термінальної програми, що пише та читає з послідовної лінії. Щоб вийти з цього режиму натисніть `Ctrl-]'.
8.3.2.3 Команда get
get - встановлення змінних для dip. Найпростішим шляхом є присвоєння змінній значення константи - як це описано в наведеному вище прикладі. Також ви можете інтерактивно присвоювати значення змінній через запрошення користувачеві використовуючи замість числа ключове слово ask :
DIP> get $local ask
Enter value for $local:
Третім методом є присвоєння значення змінній з віддаленого хоста. На перший погляд дивно, але це може бути корисним у деяких випадках : інколи SLIP сервер не дозволяює вам використовувати вашу власну IP адресу для з'єднання через SLIP, а буде кожного разу присвоювати вам кожного разу іншу адресу коли ви входите в систему, друкуючи деяке повідомлення що інформує вас відносно присвоєної вам адреси. Якщо ви побачите щось типу ``Your address: 193.174.7.202'', ви повинні вставити такі стрічки у ваш скрипт :
wait address: 10
get $locip remote
8.3.2.4 Команда print
За допомогою цієї команди можна виводити текст на консоль dip-а з якої його було запущено. Будь яка з змінних dip-а може бути використана в команді print. Наприклад :
DIP> print Using port $port at speed $speed
Using port cua3 at speed 38400
8.3.2.5 Змінні
dip розпізнає тільки наперед означений набір змінних. Імена змінних завжди починаються з символа доллара та мусять бути написані в буквами нижньому регістрі.
Змінні $local та $locip описують ім'я та IP адресу локального хоста. При присвоєнні значення $local імені хоста dip автоматично присвоює значення змінній $locip. І навпаки при присвоєнні спочатку значення $locip.
$remote та $rmtip описують те ж саме для віддаленого хоста. $mtu описує число MTU для з'єднання.
Тільки цим п'ятьом змінним можна прямо присвоювати значення використовуючи команду get. Всі інші змінні можуть бути встановлені тільки через відповідні команди, але можуть використовуватися в команді print; це - $modem, $port та $speed.
$errlvl - змінна, що описує результат роботи попередньої команди. Значення 0 означає успшне завершення, усі інші - помилку.
8.3.2.6, Команди if та goto
Команда if є командою умовного переходу. Її синтаксис такий
if expression goto label
Де expression повинен бути простим порівнянням між одною з змінних $errlvl, $locip чи $rmtip та цілим числом. Оператором порівняння може бути одним з : ==, !=, <, >, <=, та >=.
Команда goto продовжує виконання скрипта починаючи з наступної після мітки стрічки. Мітка повинна починатися з початку лінії і завершуватися символом двокрапки.
8.3.2.7 send, wait і sleep
Ці команди допомагють описати простий chat скрипт в dip. send посилає аргумент в послідовну лінію. Змінні не підтримуються, але розпізнаються всі С-подібні символьни послідовності такі як \n та \b. Символ тильда (~) - замінюється на послідовність ввід/перевід стрічки (Return/newline).
Першим аргументом команди wait є символьна стрічка. Команда сканує весь вхідний потік з послідовної лінії поки не зустріне цю стрічку. В стрічці не може бути символів "пусто" (space). Також ви можете задати другий аргумент для команди - це максимальний