今回も、シンプルなマクロを使って説明していきます。
前回はwaitについて説明しました。
waitは”(シングルクオーテーション)で囲まれた部分の文字列を待つ命令でしたね。
今回は「sendln」について解説してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
;/////////////////////////////////// ;Telnetで172.16.0.1のルータにログインし、 ;enableモードまで自動で移行します ;作者Feasible LAB. ;http://teraterm.feasible-lab.com/ ;/////////////////////////////////// connect '172.16.0.1:23 /nossh /T=1' wait 'Password:' sendln 'cisco' wait '>' sendln 'en' wait 'Password' sendln 'cisco' end |
ログインマクロではsendlnは11行目、13行目、15行目の3回使われている事がわかります。
waitの時は、”(シングルクオーテーション)で囲まれた部分の文字列を待つ、命令でした。
対して、sendlnのときはどうでしょうか。
waitと同じように考えてみると、それぞれ’cisco’、’en’、’cisco’という文字列をsendlnしていることがわかります。
もう察しがついていると思いますが、sendlnは”で囲まれた部分の文字列をタイプしてEnterする、という命令を実行してくれるのです。
ここで、一度マクロの事は忘れて、自分で手打ちしたときのログイン手順を思い出してみてください。
- ルータにtelnetする
- ルータにログインパスワードを投入する
- enと打って、enableモードに移行する
- enableパスワードを打って、enableモードに移行完了する
このような手順で、ログイン〜enableモードに移行していると思います。
Teratermの扱いに慣れている人に説明する場合はこの手順でいいですが、例えば母親にTeratermを触ってもらうというシチュエーションになったらどうでしょうか?もっと分解して記載する必要があります。
試しに先の4手順を分解してみましょう。
- IPアドレスを投入してOKボタンを押し、telnet接続する(ここは一部省略)
- 画面にPassword:と表示されるのを待つ
- 画面にPassword:と表示される
- 画面にPassword:と表示されたのを目視確認する
- ログインパスワードをタイプする
- パスワードをタイプし終わったらEnterを押す
- 画面にログインできたことを示す『>』のプロンプトが表示されるのを待つ
- ログインできたことを示す『>』のプロンプトが表示される
- 『>』が表示されたのを目視確認する
- enableモードに移行するため『en』とタイプする
- enableモード移行のためのPassword:が表示されるのを待つ
- enableモード移行のためのPassword:が表示される
- enableパスワードをタイプする
- パスワードをタイプし終わったらEnterを押す
なんと、14手順に分解することができました。
そして、もうお気づきかもしれません。
Teratermマクロに言い換えてあげると、
・telnetする=>connect
・タイプしEnterを押す=>sendln
・表示されるのを待つ=>wait
ということがわかると思います。
この分解がTeratermマクロの基本であり、文法なのです。分解されたそれぞれの指示を、「connect」や「wait」が実行しているにすぎません。
マクロの基本は、やりたい事の手順を考え、分解し、それぞれの手順に対する命令をTeratermに用意された命令文を使って記述していくということになります。
今回わかったことは、
・手順を詳細に分解すると、マクロの基礎が出来上がる
・手順を詳細に分解したものをTeratermマクロの命令文に置き換えるとマクロになる
ということです。
これで、マクロをざっくりと読めるようになり、処理についてもざっくりとわかるようになったと思います。
次回からは、Teratermに用意されている命令文の基本と、少し複雑な処理について見ていきましょう。
ピンバック: waitコマンドの使い方について | ゼロから始めるTera Termマクロ