我有以下程序,它可以远程登录到另一台设备并打印序列号和 Mac 地址。
我的问题是,由于某种原因,如果我在跳过第一个命令并发送第二个命令后发送命令,但是如果我将相同的命令复制两次,它将发送命令。
连续发送多个命令的正确方法是什么?
是否应该在发送每个命令后刷新缓冲区?
我的环境
Eclipse Ide
Ubuntu 12.10
perl 5, version 14, subversion 2 (v5.14.2)
我的代码片段:
$telnet = Net::Telnet->new($remoteSystem);
$| = 1;
$telnet->buffer_empty();
$telnet->buffer_empty();
$result = $telnet->input_log($errorlog);
#$_ = "@lines";
@TSN =$telnet->cmd('export | grep -e SerialNumber..[A-Z] | cut -d"\"" -f2');
@TSN =$telnet->cmd('export | grep -e SerialNumber..[A-Z] | cut -d"\"" -f2');
@mac = $telnet->cmd('ifconfig | grep eth0 | cut -d" " -f 11');
print "@TSN AND @TSN @mac";
print FH "$remoteSystem\n";
print "Telnetting into $remoteSystem .\n"; # Prints names of the tcd
close(telnet);
}
foreach (@host) {
checkStatus($_);
}
OUTPUT 跳过第一个命令:
bash-2.02 AND bash-2.02 ifconfig | grep eth0 | cut -d" " -f 11
00:11:D9:3C:6E:02
bash-2.02 #
bash-2.02 Telnetting into debug79-109 .
输出这行得通,但我必须两次发送相同的命令:
export | grep -e SerialNumber..[A-Z] | cut -d"\"" -f2
AE20001901E2FD1
bash-2.02 #
bash-2.02 AND export | grep -e SerialNumber..[A-Z] | cut -d"\"" -f2
AE20001901E2FD1
bash-2.02 #
bash-2.02 ifconfig | grep eth0 | cut -d" " -f 11
00:11:D9:3C:6E:02
bash-2.02 #
bash-2.02 Telnetting into debug79-109