我想用php执行awk linux命令,该命令是
mpstat | awk '$12 ~ /[0-9.]+/ { print 100 - $12 }'我用linux执行它,它能工作,它给了我当前的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
发布于 2013-05-20 01:50:21
我写了一个简短的程序来说明不同之处:
<?php
$cmd = system("ls", $retval);
echo "Cmd: " . $cmd . "\n";
echo "Retval: " . $retval . "\n";
?>输出:
prog.php
Cmd: prog.php
Retval: 0发布于 2013-05-20 02:20:51
我通常使用popen来实现这些目的。
示例:
$handle = popen('mpstat | awk \'$12 ~ /[0-9.]+/ { print 100 - $12 }\' 2>&1', 'r');
$read = fread($handle, 8192);
var_dump($read);
pclose($handle);https://stackoverflow.com/questions/16637559
复制相似问题