【发布时间】:2014-07-08 16:01:22
【问题描述】:
我正在尝试通过 exec() 从命令行读取信息;
function ex($cmd){
@exec($cmd,$exec,$status);
if($status == 0){
return $exec;
}
return "";
}
我正在尝试“逐行”解析输出,但问题是输出行被拆分(就像终端窗口“太小”一样)。对于解析来说,如果输出没有“行长度限制”,并且无论大小如何,一行都会保留一行。
如何存档?
【问题讨论】:
-
你在运行什么命令?大多数命令不关心窗口大小,尤其是在输出未定向到终端时。
-
在调用
exec之前尝试putenv("COLUMNS=1000");。 -
我正在运行
apt-get --just-print upgrade,我只是尝试了“putenv”,但它没有改变任何东西:( -
不确定这是否有帮助,但是否有机会将
apt-get upgrade --justprint的输出传送到cat或类似的东西?要查看问题,您可以尝试以下操作: 将窗口大小调整为大约 20 列并运行命令。之后将其调整为大约 200 列。当然,反过来它也很完美。 -
apt-get需要有一个宽度来打印其进度条:否则它将如何工作?如果您想出于自己的目的捕获其输出,我至少会使用 -q 选项来禁用进度条。