これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド runscript です。
プログラム:
NAME
runscript - minicom 用のスクリプト インタプリタ
SYNOPSIS
ランスクリプト スクリプト名 [ログファイル [ホームディレクトリ]]
DESCRIPTION
ランスクリプト minicom 内から呼び出すことができるシンプルなスクリプト インタプリタです。
Unix システムやお気に入りへのログインなどのタスクを自動化する通信プログラム
掲示板。
呼び出し
プログラムはスクリプト名と、オプションでファイル名とユーザーのホーム ディレクトリを期待します。
引数として入力と出力が「リモートエンド」に接続されていることを期待します。
接続しているシステム。 からのすべてのメッセージ ランスクリプト ローカル画面用
に向けられています stderr 出力。 実行すると、これらすべてが自動的に処理されます
from ミニコム。 ログファイルとホームディレクトリのパラメータは、ログを通知するためにのみ使用されます。
コマンドでログファイルの名前とそれを書き込む場所を指定します。 homedirを省略した場合、
runscript は、$HOME 環境変数にあるディレクトリを使用します。 ログファイルも
name が省略された場合、ログコマンドは無視されます。
KEYWORDS
Runscript は次のコマンドを認識します。
送信を期待して goto gosub return !< !
タイムアウトの場合は print set inc dec を終了します
詳細な睡眠休憩通話ログ
概要 OF KEYWORDS
送信
モデムに送信されます。 その後に「\r」が続きます。 可能性があるのは次のとおりです:
- 通常のテキスト、例: 「こんにちは」
- 引用符で囲まれたテキスト、例: 「send "hello world"」
内部次のシーケンスが認識されます。
\n - 改行
\r - キャリッジリターン
\ベル
\b - バックスペース
\c - デフォルトの '\r' を送信しません。
\f - フォームフィード
\^ - ^ 文字
\o - 文字を送信します o (o は XNUMX 進数です)
^ プレフィックスを付けた文字列内で制御文字を使用できます (^A から ^Z、^[、^ ^]、
^^ と ^_)。 ^ 文字を送信する必要がある場合は、先頭に \ エスケープを付ける必要があります。
文字。
XNUMX 進文字は XNUMX 桁であるか、非数字文字で区切られています。例:
null 文字は \0000 とともに送信でき、「send 1234」は「send」と同等です。
\0061234'。
$(TERM) など、$(environment_variable) も使用できます。 Minicom が XNUMX を通過
特別な環境変数: $(LOGIN) (ユーザー名)、$(PASS) (ユーザー名)
ダイヤル ディレクトリの適切なエントリで定義されているパスワード、および $(TERMLIN)
これは、画面上の実際の端末行 (つまり、ステータスライン) の数です。
除外)。
印刷
プリントローカル画面へ。 デフォルトの後に「\r\n」が続きます。 説明を参照してください
上記の「送信」の。
ラベル:
goto または gosub で使用するラベル (「label」という名前) を宣言します。
goto文
プログラム内の別の場所にジャンプします。
ゴサブ
プログラム内の別の場所にジャンプします。 「return」ステートメントに遭遇すると、
制御は gosub の後のステートメントに戻ります。 Gosub はネストできます。
return
gosubから戻ります。
!
「command」が実行されるシェルを実行します。 戻ると、変数 '$?' は
このコマンドの終了ステータスに設定されるため、その後「if」を使用してコマンドをテストできます。
!<
「command」が実行されるシェルを実行します。 コマンドの標準出力出力
実行はモデムに送信されます。 戻ると、変数 '$?' 出口に設定されています
このコマンドのステータスを確認できるため、後で「if」を使用してテストできます。
終了する [値]
オプションの終了ステータスで「runscript」を終了します。 (デフォルト 1)
セッションに
の値を設定します(az の XNUMX 文字) を値に代入します。 。 もしも
存在しない場合は作成されます。 整数値または
別の変数。
株式会社
の値をインクリメントします一つ。
12月
の値をデクリメントします一つ。
if
条件付き実行。 <、>、!= または = を使用できます。 例: 'if a > 3
出口ラベルに移動します。
タイムアウト
グローバルタイムアウトを設定します。 デフォルトでは、「runscript」は 120 秒後に終了します。 これ
このコマンドで変更できます。 警告: このコマンドは、
「expect」ステートメントですが、それについては後で詳しく説明します。
詳細
デフォルトでは、これは「オン」です。 つまり、モデムから読み取られているものはすべて
「runscript」によって、画面にエコーされます。 これは、何があるかわかるようにするためです
「runscript」がやってます。
眠る
実行を一時停止する秒。
期待する
予想 {
パターン[ステートメント]
パターン[ステートメント]
[タイムアウト[声明] ]
....
}
すべてのコマンドの中で最も重要なコマンド。 Expect は入力を読み取るまで読み取りを続けます。
指定されたパターンの XNUMX つに一致するパターン。 オプションに遭遇した場合
そのパターンの後のステートメントを実行すると、それが実行されます。 それ以外の場合、デフォルトは単に
期待を打ち破る。 'pattern' は、'send' と同様に文字列です (上記を参照)。
通常、expect は 60 秒でタイムアウトし、終了しますが、これは変更できます。
タイムアウトコマンドを使用します。
破る
「期待」ステートメントから抜け出す。 これは通常、次の引数としてのみ役立ちます。
タイムアウトのデフォルトのアクションは終了するため、期待値内の「タイムアウト」
すぐに。
コール
制御を別のスクリプトファイルに転送します。 そのスクリプトファイルが何もせずに終了した場合
エラーが発生しても、元のスクリプトは続行されます。
ログ
テキストをログファイルに書き込みます。
注意事項
minicom を終了するスクリプトを作成したい場合 (たとえば、minicom を使用してダイヤルする場合)
ISP を起動し、スクリプトから PPP または SLIP セッションを開始して、コマンド「!」を試してください。
killall -9 minicom」を最後のスクリプト コマンドとして使用します。 -9 オプションにより、minicom が
終了する前に回線を切り、モデムをリセットしてください。
まあ、これはあなたを経験豊富な「プログラマー」にするのに十分な情報ではないと思います
「runscript」ですが、例を使えば、役立つものを書くのはそれほど難しいことではありません。
スクリプトファイル。 BASICの経験があれば、作業は簡単になります。 の ミニコム source
コードには XNUMX つのサンプル スクリプトが含まれています。 スクリプトデモ ユニックスログイン。 特に
最後のスクリプトは、独自のスクリプトを構築するのに適したベースです。
onworks.net サービスを使用してオンラインで runscript を使用する