我有以下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'
答案 0 :(得分:1)
大多数交互式命令(如您正在使用的命令)接受一些标志或某些命令来禁用分页。有时,将他们的stdin
信息流连接到不是TTY的信息(例如/dev/null
)也可以。
只是浏览一下IBM dsmadmc
文档,我看到它接受选项-outfile=save.out
。使用它代替标准shell重定向可能适用于您的情况。