Unix-commands-chat
chat-Unix、Linuxコマンド
link:/unix_commands/index [previous] link:/unix_commands/index [next] [[1]] php [AddThis Social Bookmark Button]
NAME
概要
チャット optionsscript
説明
chat_プログラムは、コンピューターとモデム間の会話交換を定義します。 その主な目的は、ポイントツーポイントプロトコルデーモン(_pppd)とリモートの_pppd_プロセスの間の接続を確立することです。
オプション
Tag
説明
チャット_file_からチャットスクリプトを読み取ります。 このオプションの使用は、チャットスクリプトパラメーターと相互に排他的です。 ユーザーには、ファイルへの読み取りアクセス権が必要です。 ファイルでは複数行が許可されます。 文字列を区切るには、スペースまたは水平タブ文字を使用する必要があります。
受信する予定の文字列のタイムアウトを設定します。 文字列が制限時間内に受信されない場合、応答文字列は送信されません。 代替応答が送信される場合があります。代替応答文字列がない場合、スクリプトは失敗します。 スクリプトが失敗すると、_chat_プログラムはゼロ以外のエラーコードで終了します。
レポート文字列の出力用のファイルを設定します。 キーワード_REPORT_を使用すると、結果の文字列がこのファイルに書き込まれます。 このオプションを使用せずに_REPORT_キーワードを引き続き使用する場合、_stderr_ファイルがレポート文字列に使用されます。
-e
エコーオプションをオンにして開始します。 _link:#12 [ECHO] _キーワードを使用して、チャットスクリプトの特定のポイントでエコーをオンまたはオフにすることもできます。 エコーが有効な場合、モデムからのすべての出力は_stderr_にエコーされます。
-E
標準の_ $ xxx_構文を使用して、チャットスクリプト内で環境変数の置換を有効にします。
-v
_chat_スクリプトを詳細モードで実行するように要求します。 _chat_プログラムは、チャットスクリプトの実行状態と、モデムから受信したすべてのテキストおよびモデムに送信された出力文字列を記録します。 デフォルトでは、SYSLOGを介してログが記録されます。ロギング方法は、-Sおよび-sフラグを使用して変更できます。
-V
_chat_スクリプトをstderr詳細モードで実行するように要求します。 _chat_プログラムは、モデムから受信したすべてのテキストと、モデムに送信された出力文字列をstderrデバイスに記録します。 このデバイスは通常、チャットまたはpppdプログラムを実行しているステーションのローカルコンソールです。
-s
stderrを使用します。 '-v’からのすべてのログメッセージとすべてのエラーメッセージはstderrに送信されます。
-S
SYSLOGを使用しないでください。 デフォルトでは、エラーメッセージはSYSLOGに送信されます。 -Sを使用すると、ログメッセージ「-v」とエラーメッセージの両方がSYSLOGに送信されなくなります。
送信文字列の\ T置換メタ文字に置き換えられる任意の文字列(通常は電話番号)を渡します。
送信文字列の\ U置換メタ文字の代わりに使用される2番目の文字列(通常は電話番号)を渡します。 これは、2つの番号を必要とするISDNターミナルアダプターをダイヤルするときに役立ちます。
スクリプト
スクリプトが_-f_オプションでファイルに指定されていない場合、スクリプトは_chat_プログラムのパラメーターとして含まれます。
チャットスクリプト
_chat_スクリプトは通信を定義します。
スクリプトは、スペースで区切られた1つ以上の「expect-send」文字列ペアで構成され、オプションの「subexpect-subsend」文字列ペアは、次の例のようにダッシュで区切られます。
Tag
説明
ogin:-BREAK-ogin:ppp ssword:hello2u2
この行は、_chat_プログラムがストリング「ogin:」を予期することを示しています。 割り当てられた時間間隔内にログインプロンプトの受信に失敗した場合、リモートにブレークシーケンスを送信し、文字列「ogin:」を期待します。 最初の「ogin:」が受信された場合、ブレークシーケンスは生成されません。
ログインプロンプトを受信すると、_chat_プログラムは文字列pppを送信し、プロンプト「ssword:」を期待します。 パスワードのプロンプトを受信すると、パスワードhello2u2を送信します。
通常、キャリッジリターンは応答文字列に続いて送信されます。 \ r文字シーケンスを使用して特別に要求されない限り、「expect」文字列では期待されていません。
expectシーケンスには、文字列を識別するために必要なもののみを含める必要があります。 通常はディスクファイルに保存されるため、変数情報を含めることはできません。 一般に、時間文字列、ネットワーク識別文字列、またはその他の可変データを期待文字列として探すことは受け入れられません。
最初のシーケンスで破損する可能性のある文字を修正するには、「login:」ではなく「ogin:」という文字列を探してください。 先頭の「l」文字が誤って受信される可能性があり、システムによって送信された文字列を見つけられない場合があります。 このため、スクリプトは「login:」ではなく「ogin:」および「password:」ではなく「ssword:」を探します。
非常に単純なスクリプトは次のようになります。
ogin:ppp ssword:hello2u2
つまり、…. ogin:を期待し、pppを送信し、… ssword:を期待し、hello2u2を送信します。
実際には、単純なスクリプトはまれです。 少なくとも、元の文字列が受信されない場合、サブ期待シーケンスを含める必要があります。 たとえば、次のスクリプトを考えます。
ogin:-ogin:ppp ssword:hello2u2
コメント
#
Tag
説明
#プロンプトを待ち、ログアウト文字列 ’#’ログアウトを送信します
ファイルからデータを送信する
チャット
文字列を中止
これらの「中止」文字列は、_ABORT_シーケンスを使用してスクリプトで指定できます。 次の例のように、スクリプトに記述されています。
Tag
説明
ABORT BUSY ABORT 'NO CARRIER' ATZ OK ATDT5551212接続
OKOKCONNECTCONNECTBUSYNO CARRIERchat
CLR_ABORT STRINGS
文字列を言う
SAY文字列を使用して、スクリプトのセクションで進行状況メッセージを提供し、「エコーをオフ」にしたいが、何が起こっているのかをユーザーに知らせることができます。 例は次のとおりです。
Tag
説明
BUSY ECHO OFFを中止すると「ISPにダイヤルしています… \ n」 ’’ ATDT5551212タイムアウト120と言います「接続に最大2分待機しています… "CONNECT ’’ SAY"接続されました。現在ログインしています… 0 ogin:アカウントssword:pass $ SAY "ログインできました… 0 etc …
このシーケンスでは、ユーザーにSAY文字列のみが表示され、スクリプトのすべての詳細は非表示のままになります。 たとえば、上記のスクリプトが機能する場合、ユーザーには以下が表示されます。
ISPにダイヤルしています… 接続を最大2分待機しています… 接続済み、ログイン中… ログインOK …
レポート文字列
報告する
レポート文字列を使用して、モデムの接続文字列の伝送速度を分離し、チャットユーザーに値を返すことができます。 レポート文字列ロジックの分析は、期待される文字列の検索など、他の文字列処理と連動して行われます。 レポートとアボートシーケンスに同じ文字列を使用することは、おそらくあまり有用ではありませんが、可能です。
レポートの文字列は、プログラムの完了コードを変更しません。
これらの「レポート」文字列は、_REPORT_シーケンスを使用してスクリプトで指定できます。 次の例のように、スクリプトに記述されています。
Tag
説明
BUSY ABORT BUSYを報告する ATDT5551212 CONNECT ogin:アカウント
CONNECTCONNECT
CLR_REPORT STRINGS
ECHO
stderr-elink:#12 [ECHO] link:#12 [ECHO] ONlink:#12 [ECHO] OFF
Tag
説明
「ビジー」の中止「キャリアなし」の中止OK \ r \ n ATD1234567 \ r \ n \ c接続のエコー\ c ogin:アカウント
CONNECTBUSY
電話を切る
Tag
説明
ABORT 'BUSY' OK \ r \ n ATD1234567 \ r \ n \ c CONNECT \ c 'Callback login:' call_back_ID HANGUP OFF ABORT "Bad Login" 'Callback Password:' Call_back_password TIMEOUT 120 CONNECT \ c HANGUP ON ABORT "NO CARRIER" ogin:-BREAK—ogin:real_account etc …
タイムアウト
-t
次の期待される文字列のタイムアウト値を変更するには、次の例を使用できます。
Tag
説明
ATZ OK ATDT5551212接続タイムアウト10 ogin:-ogin:タイムアウト5 assword:hello2u2
タイムアウトは、一度変更されると、再度変更されるまで有効です。
EOTの送信
EOT ^ D
休憩の生成
BREAK \ K
エスケープシーケンス
Tag | Description |
---|---|
’’ | Expects or sends a null string. If you send a null string then it will still send the return character. This sequence may either be a pair of apostrophe or quote characters. |
\\b | represents a backspace character. |
\\c | Suppresses the newline at the end of the reply string. This is the only method to send a string without a trailing return character. It must be at the end of the send string. For example, the sequence hello\c will simply send the characters h, e, l, l, o. (not valid in expect.) |
\\d | Delay for one second. The program uses sleep(1) which will delay to a maximum of one second. (not valid in expect.) |
\\K | Insert a BREAK (not valid in expect.) |
\\n | Send a newline or linefeed character. |
\\N | Send a null character. The same sequence may be represented by \0. (not valid in expect.) |
\\p | Pause for a fraction of a second. The delay is 1/10th of a second. (not valid in expect.) |
\\q | Suppress writing the string to the SYSLOG file. The string ?????? is written to the log in its place. (not valid in expect.) |
\\r | Send or expect a carriage return. |
\\s | Represents a space character in the string. This may be used when it is not desirable to quote the strings which contains spaces. The sequence ’HI TIM’ and HI\sTIM are the same. |
\\t | Send or expect a tab character. |
\\T | Send the phone number string as specified with the -T option (not valid in expect.) |
\\U | Send the phone number 2 string as specified with the -U option (not valid in expect.) |
\\\\ | Send or expect a backslash character. |
\\ddd | Collapse the octal digits (ddd) into a single ASCII character and send that character. (some characters are not valid in expect.) |
^C | Substitute the sequence with the control character represented by C. For example, the character DC1 (17) is shown as ^Q. (some characters are not valid in expect.) |
環境変数
-E $ nothing
終了コード
チャット
Tag
説明
0
プログラムの正常終了。 これは、スクリプトがエラーなしで正常に実行されたことを示します。
1
1つ以上のパラメーターが無効であるか、期待される文字列が内部バッファーに対して大きすぎます。 これは、プログラムが適切に実行されなかったことを示します。
2
プログラムの実行中にエラーが発生しました。 これは、何らかの理由で読み取りまたは書き込み操作が失敗したか、チャットがSIGINTなどの信号を受信したことが原因である可能性があります。
3
「-subsend」文字列を持たない_expect_文字列があると、タイムアウトイベントが発生しました。 これは、条件に対してスクリプトを正しくプログラムしなかったか、予期しないイベントが発生し、予期した文字列が見つからなかったことを意味する場合があります。
4
_ABORT_条件としてマークされた最初の文字列が発生しました。
5
_ABORT_条件としてマークされた2番目の文字列が発生しました。
6
_ABORT_条件としてマークされた3番目の文字列が発生しました。
7
_ABORT_条件としてマークされた4番目の文字列が発生しました。
他の終了コードも、_ABORT_条件としてマークされた文字列です。
関連項目
chatuucico
link:/uucico.1 [uucico(1)]、link:/uucp.1 [uucp(1)]
著作権
chatlink:/unix_commands/index [previous] link:/unix_commands/index [next] link:/cgi-bin/printversion.cgi?tutorial = unix_commands&file = chat [Printer Friendly]
Advertisements |