1
我有一个Perl脚本,自动与Expect.pm
产卵通过SSH登录ssh
我。隐藏的Perl期望输出
它实际上工作得很好,这里是我的输出中:
$ ngh bestServerEver
GPG Pass :
[email protected]**********'s password:
Linux **** 2.6.32-042stab059.7 #1 SMP Tue Jul 24 19:12:01 MSK 2012 x86_64 GNU/Linux
motd!!!!!!!!!!
Last login: Mon Feb 4 22:18:10 2013 from *******************
bash
[[email protected]******:~]$ bash
[[email protected]******:~]$
我试图抑制这种输出输入我的命令后直接到达服务器外壳。这样的:
$ngh BestServerEver
[email protected]#
我已经试过了答案: How can I suppress STDOUT temporarily in a Perl program?
我也试过:
local (*OUT, *ERR);
open OUT, ">&STDOUT";
open ERR, ">&STDERR";
close STDOUT;
close STDERR;
print "don't print";
open STDOUT, ">&OUT";
open STDERR, ">&ERR";
两者都是好时,它的有关标准STDOUT但预计似乎是一个不同种类的手柄或其他。
我也试着设置:
$exp->stty("-echo");
但它并没有掩饰什么
最后,这里是我的代码http://pastebin.com/pSL3AwBW如果你有一些提示,以给我如何来隐藏垃圾。
那么这有很大帮助!谢谢!但我仍然会得到我发送的命令的输出:当我发送$ exp-> send(“bash”);它。OUPUTS: 庆典(当时) [根@服务器〜] $ bash的(当时) [根@服务器〜] $ – Azryel
不,不。 – ikegami
我可能在我的脚本中做了一些错误,因为它实际上会打印它:debug为3,--->尝试互连--->互连:从spawn id(3)读取51个字节。 --->打印'\ 033 [01; 32m [root @ server \ 033 [00m:\ 033 [01; 34m〜] \ 033 [00m $ bash \ r \ n')从spawn id处理id 3)。 ---> [root @ server:〜] $ bash <---但是,无论如何,我会尽力弄明白;) – Azryel