ある装置にtelnet接続し、コマンド(ccc dd ee)を送信して帰ってきた値を
outou.dat というファイルに保存するプログラムを作っています。
接続すると
login:
と表示されるので「aaaa」と入力すると
Welcome to aaaa
>
と表示され、「bbbb」と入力するとプロンプトが「#」に変わります。
>bbbb
#
そこでコマンド「ccc dd ee」を入力したときに帰ってくる応答をファイルに保存します。
#ccc dd ee
------応答データ--------
これを行うのに下記プログラムを実行しましたが、エラーは出ませんがファイルに何も
保存されませんでした。
何がいけないのかわかる方教えてください。
use strict;
use Net::Telnet;
my $host = '192.168.1.1';
my $login = 'aaaa';
my $enable = 'bbbb';
my $prompt1 = '/>/';
my $prompt2 = '/\S/';
my $telnet = new Net::Telnet(
Timeout => 10,
);
$telnet->open($host);
$telnet->waitfor('/login:/i');
$telnet->print($login);
$telnet->waitfor($prompt1);
$telnet->print($enable);
$telnet->waitfor($prompt2);
my @result;
$telnet->print("ccc dd ee");
($result) = $telnet->waitfor($prompt2);
open(OUT, "> outou.dat");
print(OUT "@result\n");
close(OUT);
$telnet->close;
No.1ベストアンサー
- 回答日時:
> エラーは出ませんが
本当ですか?
> ($result) = $telnet->waitfor($prompt2);
で使われている $result は宣言されていないようですが。
@resultと$resultは別の変数です。
$resultに取り込んだものを
>print(OUT "@result\n");
と@resultで出力することはできません。
回答ありがとうございました。
$resurtと使う場合と@resurtを使う場合の両方を考えていたため、
ここに書くテストプログラムにはごっちゃに書いてしまってました。
実際のプログラムは$resurtで統一されているのでエラーは出ませんでした。
いろいろ試した結果、コマンドの応答が複数ページに渡っていたため、
「何かキーを押してください」のメッセージで止まり、プロンプトが
戻らなかったためタイムアウトになっていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング インフラエンジニア(ネットワークエンジニア)の検証業務について教えてください。 インフラ初心者なので 2 2022/06/26 00:08
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- その他(クラウドサービス・オンラインストレージ) Google ColabでGoogleドライブのサブフォルダにファイルを生成する方法 1 2022/10/31 17:37
- 英語 「名詞 of 名詞」において、どちらも同一人物が主体となったり所有する名詞の適切な各限定詞について 2 2022/08/18 11:32
- Perl perlについての質問 2 2022/10/17 15:25
- YouTube youtubeからの著作権メールについて 2 2023/02/14 16:12
- Excel(エクセル) VBAで重複データを合算したい(時間) 1 2022/12/08 23:06
- PHP PHP ページング データベース 1 2022/06/16 10:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
microsoft multimedia control ...
-
改行コードが勝手に
-
close()で例外が投げられる理由
-
Perlでファイル出力時にデッド...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
ReadLineでの読み出し行を指定する
-
dos変数の%~dp0は powershellで...
-
openした後、closeしないでプロ...
-
perlで複数行のデータを自由に...
-
sprintfについて
-
ADOによるCSVファイルからのデ...
-
fopenでディレクトリ内の全ファ...
-
Windowsで複数のファイルを同じ...
-
htaccessで特定のディレクトリ...
-
バッチファイルの作り方(CSV→...
-
VBA テキストファイルを読み取...
-
はじめまして。
-
エクセルマクロについて CSVフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
close()で例外が投げられる理由
-
改行コードが勝手に
-
perlを用いた特定文字列間の抽...
-
Perl で syntax error
-
ハッシュにファイルハンドル
-
where can I buy snowbord in t...
-
open中のファイルをrename
-
GD.pmで作成した画像を保存する...
-
perlで複数のファイルの処理に...
-
while(<ハンドラ>) {} で行数を...
-
パスワード自動生成スクリプト...
-
die関数のエラー出力先について
-
Perlでファイル出力時にデッド...
-
perlのflock関数でロックをかけ...
-
PICでFatFsでオープンした内容...
-
クリックを何回もされて、重複...
-
cgiの投票回数制限設定について...
-
ファイルから読み込んだ文字を
-
テキストファイルの本文中に行...
-
データの並べ替え
おすすめ情報