在Perl中模拟按Enter键

时间:2014-09-04 10:19:23

标签: perl enter keystroke simulate

我有以下perl脚本,它将命令的输出保存到文本文件

#!/usr/bin/perl 
use warnings;
use strict;
use Term::ANSIColor;

my $cmd_backupset=`ssh user\@ip 'dsmadmc -id=username -password=passwd "q backupset"' >> output.txt`;

open CMD, "|$cmd_backupset" or die "Can not run command $!\n";
print CMD "\n";
close CMD;

output.txt的输出是这样的:

Text Text Text
...
more...   (<ENTER> to continue, 'C' to cancel)

脚本仍然在终端中运行,当我按Enter键时,output.txt文件获取额外信息。但是,我必须按输入超过30次才能获得完整的输出。有没有办法自动化脚本,所以当output.txt中的最后一行是more...时,它模拟按Enter键?

我尝试使用Expect(无法安装)和echo -ne '\n'

1 个答案:

答案 0 :(得分:1)

大多数交互式命令(如您正在使用的命令)接受一些标志或某些命令来禁用分页。有时,将他们的stdin信息流连接到不是TTY的信息(例如/dev/null)也可以。

只是浏览一下IBM dsmadmc文档,我看到它接受选项-outfile=save.out。使用它代替标准shell重定向可能适用于您的情况。