私のexpectスクリプトで長いコマンドを送信する際に問題があります。私は、ルータにアクセスするTelnetを使用しています:bashスクリプトで長いコマンドを送信できないExpect
#! /usr/bin/expect -f
#
#
spawn telnet 192.168.0.5
expect {
"login:"
{
send "admin\r"
expect "Password:"
send "admin\r"
expect ">"
send "enable\r"
expect "Password:"
send "\r"
# My Command
expect "#"
send "terminal length 0\r"
expect "#"
send "show running-config | include ip nat pool-group\r"
}
}
expect "#"
send "exit\r"
私は
<?php
exec(mybinfile , $returnvalue);
print_r($returnvalue);
上記のスクリプトを実行するために、PHPでのexecを使用しています、私は出力をチェックすると、それは誤ったコマンドのように見えてきました送信されます。しかし、それでも、それは働いています。なぜそれはそれを出力するのですか?結果は次のようになります
:
[14] => R1#terminal length 0
[15] => R1#show running-config | include ip nat pool-gro$ng-config | include ip nat pool-grou $ng-config | include ip nat pool-group
私は以下の例のように、私のコマンドの文字数を減らすことを試み、それは結構です。その場合
show running-config | include ip nat pool-gro
は、私は問題が発生します私はprint_r
で見ることができる出力ですか?
'それがprint_rで見ることができる出力であれば問題に遭遇しますか?いいえ問題はありません。文字列が長くなればなるほど、それはよりぎこちなくなるでしょう。 – Jahid
これは、削除デバイス、telnet自体、およびtelnetからの出力をキャプチャする方法の組み合わせです。それは「どのように期待されているのか」や「不気味な」ものではありません。そのデバイスに "手動で" telnet接続すると、テキストの一部が太字またはハイライト表示されますか? –