マクロで処理されない行でも 「#」があるとSyntax errorが発生
Eröffnet am: 2023-01-20 15:43
Letztes Update: 2023-01-20 17:51
Auswertung: | (Anonym) | Verantwortlicher: | (Keine) |
---|---|---|---|
Priorität: | 5 - Mittel | Meilenstein: | (Keine) |
Typ: | Fehler | Schweregrad: | 5 - Mittel |
Komponente: | Tera Term Macro | Status: | Offen |
Lösung | Keine |
Einzelheiten
・TeraTermバージョン:4.106
・自動で各機器に接続するマクロを作成しています。
以下のようにマクロの処理が実施されない箇所(endの後)に接続先情報を記載しているのですが、実行すると '#' が記載されている行で Syntax errorが発生します。
XXXX.ttl の中身
;XXXX.ttl自身をfile openし機器のパラメータを読み込む処理 ;各種接続処理 ;~ end ┌【機器パラメータ】────────────────┐ IPアドレス:192.168.0.1 パスワード:PassWord 通常プロンプト:^RouterA> 特権プロンプト:^RouterA# ; ←マクロの処理は実行されない筈だけど、この行でSyntax errorが発生 特権昇格コマンド:enable ~ └【/】──────────────────────────┘
Letzte Aktualisierung für dieses Ticket
2023-01-20 17:51 Aktualisiert von: nmaya
- Details Updated
Kommentar
end より後ろの行ですが、実行はされませんが解析は行われるはずです。
なぜなら、このようなマクロが書けるからです。
ですから endコマンドはあくまでも「ここで実行が終わる」のであって、この下になんでも書ける、perl の __DATA__や __END__より下のように確実にデータセクションであることを保証するものではなさそうです。
もし今のようにスクリプト内にデータを書きたいのなら、以下のようにコメントとして記述して、読み込んだ行を「";" が行頭にある前提」で解析するのはどうでしょうか。