我想用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
答案 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);