我是Perl的新人:)
我试图编写一个简单的脚本,只需打开一个CLI环境(通过执行bash命令) 然后向该环境发送命令(仅限熟悉此命令的环境)
例如: 我的linux在HP服务器机器上运行。 如果我想在root用户下看到内存配置,我需要 执行:' hpasmcli "然后我很好地得到以下环境:
root @ xxx:/>% hpasmcli 适用于Linux的HP管理CLI(v2.0) 版权所有2008 Hewlett-Packard Development Group,L.P。
注意:并非所有Proliant服务器都支持某些hpasmcli命令。
hpasmcli>
现在需要输入"显示dimm":
注意:并非所有Proliant服务器都支持某些hpasmcli命令。
hpasmcli> 显示dimm
然后我将获得服务器中的内存配置。
所以我想写一个Perl脚本来完成这个简单的任务。 我试图使用"期待"和"打开(FH," | / sbin / hpasmcli")但我只能登录 到CLI环境而不发送命令" show dimm"
感谢您的帮助!
答案 0 :(得分:1)
每次写入后,您可能需要刷新输出缓冲区:
open my $CMD, "| /sbin/hpasmcli"
or die "Couldn't pipe output to hpasmcli: $!";
my $old_out = select $CMD;
$| = 1; #perl's autoflush global variable which affects the current output file handle
select $old_out;
print {$CMD} "show dimm";