用php执行awk linux命令

时间:2013-05-19 17:42:56

标签: php linux

我想用php执行awk linux命令,命令是

 mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'

我执行它与linux它的工作原理,它给了我在presentage中的cpu用法,我在php中尝试这个:

$cmd= system("mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'",$retval);
echo $retval;

$cmd= passthru(" mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'",$retval);
 echo $retval;

它不起作用,我做了一些搜索,所以我把awk命令放在变量中然后执行它:

$var='$12 ~ /[0-9.]+/ { print 100 - $12 }';
$cmd=  exec('mpstat | awk"$var"',$retval);
echo $retval;

,输出始终为Array

2 个答案:

答案 0 :(得分:1)

我写了一个简短的程序来说明差异:

<?php
$cmd = system("ls", $retval);
echo "Cmd: " . $cmd . "\n";
echo "Retval: " . $retval . "\n";
?>

输出:

prog.php
Cmd: prog.php
Retval: 0

答案 1 :(得分:0)

我通常会将popen用于这些目的。

示例:

$handle = popen('mpstat | awk \'$12 ~ /[0-9.]+/ { print 100 - $12 }\' 2>&1', 'r');
$read = fread($handle, 8192);
var_dump($read);
pclose($handle);