当手动运行命令时,脚本输出与输出不同

我是相当新的东西,我已经写了一个简单的Perl脚本来轮询服务器每隔几秒iostat -k -x数据使用Capture :: Tiny

该脚本工作,但正在显示的数据正在被切断。 这通常不会发生,如果我通常做iostat -k -x

这只是在一分钟内将数据显示n次。

使用轮询脚本时的脚本代码,iostat -k -x输出,输出在这里: http : //pastebin.com/K1AnqskU

任何帮助,将不胜感激!

在这里帮助JP的老兄有一点点。 我们现在知道了。

Capture :: Tiny工作正常,并且反引用与Capture :: Tiny完全相同。

问题在于,他在命令行中使用的破折号是unicode,所以shell简单地忽略了它们。 🙂

看来,你的脚本中有“ – ”字符有问题。
如果我从你的例子复制粘贴“iostat -k -x”到我的terminal,它会给出截断的输出。 如果我用手input,输出是正确的。

PS由于您忽略了stderr输出,您可以使用

 $stdout = `iostat –k –x`;