跟我说,描述很长.
在perl中我想执行一个简单的远程命令并使用perl :: Expect捕获输出.但是我发现我的结果数组有时是空的.我做了很多实验,并且相信问题是我的远程ssh连接正在终止,成功之后,远程命令可以刷新到stout.
以下示例已编辑用户/组/主机名.除此之外,输出是未经编辑的剪切和粘贴.
> while true ; do echo "start"; ssh -l user host 'date; ls -l abc; echo $?'; echo "end"; done start Password: Mon Oct 6 13:06:51 PDT 2014 -rw-r--r-- 1 user group 34538 Dec 6 2012 abc 0 end start Password: end start Password: Mon Oct 6 13:06:54 PDT 2014 end
如果我将远程命令发送到虚拟文件,那么stdout也会被刷新,并且我每次都能可靠地从我的命令中获取输出.不幸的是,这是一个黑客的工作.
while true ; do echo "start"; ssh -l user host 'date | tee -a /tmp/date.txt' ; …